有时我从github下载python源代码,不知道如何安装所有的依赖项。如果没有requirements.txt文件,我必须手工创建它。 问题是: 给定python源代码目录,是否有可能从导入部分自动创建requirements.txt ?
当前回答
@Francis说得对- https://stackoverflow.com/a/65728461/1021819
但我要补充一点:
对Jupyter笔记本的额外支持-即.ipynb文件-您现在可以使用https://pypi.org/project/pipreqsnb(与pipreqs相同的语法):
pip install pipreqsnb
pipreqsnb .
[我不是作家]
其他回答
因为大多数使用pipreqs的答案对我来说都不管用。以下是我的答案。
生成requirements.txt文件:
pip install pipreqs
python -m pipreqs.pipreqs --encoding utf-8 /path/to/project
我更喜欢使用pipreqs而不是pip freeze,因为pip freeze保存了环境中的所有包,包括那些在当前项目中不使用的包。但是,pipreqs只保存您在项目中使用的那些。
安装需求使用:
pip3 install -r requirements.txt
这不是一个完整的解决方案,但可能有助于在Linux上编译一个候选列表。
grep --include='*.py' -rhPo '^\s*(from|import)\s+\w+' . | sed -r 's/\s*(import|from)\s+//' | sort -u > requirements.txt
首先,你的项目文件必须是一个py文件,这是直接的python文件。如果你的文件是ipynb格式,你可以使用下面的代码行将它转换为py类型:
jupyter nbconvert --to=python
然后,您需要从cmd (mac终端)安装pipreqs库。
pip install pipreqs
现在我们可以使用下面的代码创建txt文件。如果你和你的文件在同一路径,你可以写。/。否则,你需要给你的文件路径。
pipreqs ./
or
pipreqs /home/project/location
这将为您的项目创建一个requirements.txt文件。
你可以使用下面的代码来生成一个requirements.txt文件:
pip install pipreqs
pipreqs /path/to/project
更多有关pipreqs的信息可以在这里找到。
有时您会遇到pip冻结,但这会保存环境中的所有包,包括那些您在当前项目中不使用的包。
我创建了这个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;