有时我从github下载python源代码,不知道如何安装所有的依赖项。如果没有requirements.txt文件,我必须手工创建它。 问题是: 给定python源代码目录,是否有可能从导入部分自动创建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;
其他回答
如果你在你的系统中安装了很多依赖项,并且你需要一个特定项目的requirements.txt,你可以安装第一个pipreqs:
$ pip install pipreqs
并在项目文件夹下执行以下命令。
$ pipreqs
该命令将为特定项目生成requirements.txt文件。
或者如果你使用的是virtualenv,你可以运行这个命令来生成一个requirements.txt
$ ./.venv/bin/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
如果你只想列出在virtualenv中使用的包,请使用:
pip freeze -l > requirements.txt
建议使用Pipenv或其他工具来改进开发流程。
pip3 freeze > requirements.txt # Python3
pip freeze > requirements.txt # Python2
如果您不使用虚拟环境,pigar将是一个很好的选择。
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录