如何使用pipreqs创建requirements.txt文件

25

我试图使用pipreqs包生成一个requirements.txt文件。根据文档中的示例操作,但我一直无法使其正常工作。

看起来很简单,文档告诉我在终端中使用以下命令:

$ pipreqs /home/project/location

在我的情况下,这是我的项目位置:

$ pipreqs /Users/ep9k/Desktop/UVA\ Big\Deal

我收到了以下错误信息:

FileNotFoundError: [Errno 2] No such file or directory: '/Users/ep9k/Desktop/UVA BigDeal/requirements.txt'

错误信息是正确的,该目录中没有 requirements.txt 文件。我正在尝试使用 pipreqs 来创建 requirements.txt 文件。

阅读文档,pipreqs 应该扫描一个 Python 文件的导入语句并基于此构建 requirements.txt 文档。因此,我也尝试使用我想让 pipreqs 扫描的文件:

$ pipreqs /Users/ep9k/Desktop/UVA\ Big\Deal/1FigrFunctions.py

我收到了这个错误,基本上和上面的差不多:

FileNotFoundError: [Errno 2] No such file or directory: '/Users/ep9k/Desktop/UVA BigDeal/1FigrFunctions.py/requirements.txt'

我相信解决方案显而易见。那么我做错了什么?


1
不相关 - Github Copilot刚刚在我的代码补全中幻想出了你的用户名:" input=( Path("/Users/ep9k/Desktop/overview_mosaic.json"), Path("/Users/ep9k/Desktop/mosaic.json"), )" :) - four43
6个回答

20

我自己解决了这个问题。我认为错误的原因是由于我尝试在其中运行pipreqs的目录中有大量文件。为了解决这个问题,我创建了一个名为“test”的新空目录,并将想要生成requirements.txt文件的文件放在该目录中。因此,在我的新“test”目录中只有一个文件。然后我按照以下方式运行命令:

$ pipreqs /Users/ep9k/Desktop/test

然后它起作用了。真的很简单...


2
对我来说,从tensorflow环境中运行该命令会创建一个空的requirements文件。为了解决这个问题,我只能在项目文件夹内创建它。 - Suprateem Banerjee

15
我发现通过以下步骤可以解决这个错误 - 如果你想为你的Python文件指定完整路径,请使用以下代码 -
pipreqs --encoding utf-8 "C:\Users\username\Downloads\Bl_container\training\fold\"

此外,python文件应该独自存在于文件夹中。

如果您当前在您的python文件目录中,请使用以下命令-

pipreqs --encoding utf-8 "./"

使用编码以消除地图错误。 确保您未连接到任何VPN,否则可能会出现 HTTPConnection 错误。


10
用Pigar代替吧,我在使用pipreqs时遇到了很多问题。

https://github.com/Damnever/pigar

使用以下命令在控制台中安装pigar: pip install pigar 然后,进入项目目录并使用以下命令: pigar generate 这将在您的目录中生成一个requirements.txt文件,类似于以下内容:
# Automatically generated by https://github.com/damnever/pigar.

# Editable install with no version control (mysql-connector-python==8.0.33)
-e c:\programdata\miniconda3\lib\site-packages\mysql_connector_python-8.0.33-py3.10.egg-info
opencv-python==4.7.0.72
openpyxl==3.1.2
pandas==2.0.1
PySide2==5.15.2.1

1
抱歉,我忘记了。您可以使用以下命令安装所需的依赖项: pip install -r requirements.txt - Carlost

6

你尝试过吗:

$ pipreqs --encoding utf-8 "/Users/ep9k/Desktop/UVA/Big/Deal" --force

我已经成功创建了一个包含多个 .py 文件的目录下的 requirement.txt。


2

首先安装pipreqs(仅为确保):

pip install pipreqs

然后运行这个命令:

python -m pipreqs.pipreqs

1
Python3 适合我:python3 -m pipreqs.pipreqs - Dominic van der Pas

1
你可以使用 pipreqs --ignore .venv 命令来创建 requirements.txt 文件,其中只包含你在代码中导入的包。(.venv 是虚拟环境文件夹名称)。
如果你在 pipreqs 命令中没有忽略该文件夹,它将读取 .venv 中的所有文件,并在 requirements.txt 中创建所有包及其子包。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接