有时我从github下载python源代码,不知道如何安装所有的依赖项。如果没有requirements.txt文件,我必须手工创建它。 问题是: 给定python源代码目录,是否有可能从导入部分自动创建requirements.txt ?


当前回答

自动更新requirements.txt的方法

在使用requirements.txt开发python应用程序时,我们有几个选择:

在开发完成后,当我们想要部署它时,生成requirements.txt。它由pip freeze > requirements.txt或pipreqs执行,以减少混乱的结果。 在每次安装后手动将每个模块添加到requirements.txt中。 安装管理器,它将为我们处理requirements.txt更新。

1-st选项有很多答案,2-d选项不言自明,所以我想描述3-d方法。有一个叫做to-requirements.txt的库。要安装它,输入以下命令:

pip install to-requirements.txt  # Pip install to requirements.txt

如果你一次阅读整个命令,你就会明白它是做什么的。安装后,您应该安装它。运行:

requirements-txt setup

它覆盖pip脚本,以便每个pip安装或pip卸载都自动使用所需版本的包更新项目的requirements.txt文件。重写是安全的,因此卸载此包后pip将正常运行。

你可以自定义它的工作方式。例如,全局禁用它,只在需要的目录中激活它,只在git存储库中激活它,或者允许/不允许创建requirements.txt文件(如果它不存在)。

链接:

文档- https://requirements-txt.readthedocs.io/en/latest/ GitHub - https://github.com/VoIlAlex/requirements-txt PyPI - https://pypi.org/project/to-requirements.txt/

其他回答

我创建了这个bash命令。

for l in $(pip freeze); do p=$(echo "$l" | cut -d'=' -f1); f=$(find . -type f -exec grep "$p" {} \; | grep 'import'); [[ ! -z "$f" ]] && echo "$l" ; done;

@Francis说得对- https://stackoverflow.com/a/65728461/1021819

但我要补充一点:

对Jupyter笔记本的额外支持-即.ipynb文件-您现在可以使用https://pypi.org/project/pipreqsnb(与pipreqs相同的语法):

pip install pipreqsnb
pipreqsnb .

[我不是作家]

你可以使用下面的代码来生成一个requirements.txt文件:

pip install pipreqs

pipreqs /path/to/project

更多有关pipreqs的信息可以在这里找到。

有时您会遇到pip冻结,但这会保存环境中的所有包,包括那些您在当前项目中不使用的包。

自动更新requirements.txt的方法

在使用requirements.txt开发python应用程序时,我们有几个选择:

在开发完成后,当我们想要部署它时,生成requirements.txt。它由pip freeze > requirements.txt或pipreqs执行,以减少混乱的结果。 在每次安装后手动将每个模块添加到requirements.txt中。 安装管理器,它将为我们处理requirements.txt更新。

1-st选项有很多答案,2-d选项不言自明,所以我想描述3-d方法。有一个叫做to-requirements.txt的库。要安装它,输入以下命令:

pip install to-requirements.txt  # Pip install to requirements.txt

如果你一次阅读整个命令,你就会明白它是做什么的。安装后,您应该安装它。运行:

requirements-txt setup

它覆盖pip脚本,以便每个pip安装或pip卸载都自动使用所需版本的包更新项目的requirements.txt文件。重写是安全的,因此卸载此包后pip将正常运行。

你可以自定义它的工作方式。例如,全局禁用它,只在需要的目录中激活它,只在git存储库中激活它,或者允许/不允许创建requirements.txt文件(如果它不存在)。

链接:

文档- https://requirements-txt.readthedocs.io/en/latest/ GitHub - https://github.com/VoIlAlex/requirements-txt PyPI - https://pypi.org/project/to-requirements.txt/

要帮助解决这个问题,请始终只在本地包上运行requirements.txt。我所说的本地包是指只在项目文件夹中的包。要做到这一点,请做: Pip freeze -local > requirements.txt

不是pip freeze > requirements.txt。 注意,在local之前是双下划线。

不过,安装pipreqs也有帮助。 Pip安装Pip。

不过,最好的解决办法是准备一个皮夹。当您安装新的本地包时,pipfile会自行更新。它也有一个pipfile。锁类似于包。json。 要做到这一点,请使用pipenv而不是pip安装软件包。 我们用pipenv