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


当前回答

这不是一个完整的解决方案,但可能有助于在Linux上编译一个候选列表。

grep --include='*.py' -rhPo '^\s*(from|import)\s+\w+' . | sed -r 's/\s*(import|from)\s+//' | sort -u > requirements.txt

其他回答

或者如果你使用的是virtualenv,你可以运行这个命令来生成一个requirements.txt

$ ./.venv/bin/pip freeze > 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并自动添加相关模块。

For Unix : pip3 freeze > requirements.txt
For Windos: pip freeze > requirements.txt

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

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

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

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