有时我从github下载python源代码,不知道如何安装所有的依赖项。如果没有requirements.txt文件,我必须手工创建它。 问题是: 给定python源代码目录,是否有可能从导入部分自动创建requirements.txt ?
当前回答
对于python3:(我的机器上有python2和python3,其中python2是默认值)
# install
pip3 install pipreqs
# Run in current directory
python3 -m pipreqs.pipreqs .
python2:
pip install pipreqs
python -m pipreqs.pipreqs .
检查你的python版本:
python --version
其他回答
你可以用命令来做。它将创建requirements .txt并自动添加相关模块。
For Unix : pip3 freeze > requirements.txt
For Windos: pip freeze > requirements.txt
因为大多数使用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
自动更新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 install pipreqs
pipreqs /path/to/project
更多有关pipreqs的信息可以在这里找到。
有时您会遇到pip冻结,但这会保存环境中的所有包,包括那些您在当前项目中不使用的包。
我盲目地遵循公认的使用答案 Pip3冻结> requirements.txt
它生成了一个巨大的文件,其中列出了整个解决方案的所有依赖项,这不是我想要的。
因此,您需要弄清楚您试图生成什么样的requirements.txt。
如果您需要一个包含所有依赖项的requirements.txt文件,那么可以使用pip3
pip3 freeze > requirements.txt
但是,如果您想生成一个最小的requirements.txt,它只列出您需要的依赖项,那么可以使用pipreqs包。如果您在项目中的每个组件级别都有大量的requirements.txt文件,而在解决方案范围级别上没有一个文件,那么这将特别有用。
pip install pipreqs
pipreqs [path to folder]
e.g. pipreqs .
pipreqs . --force --ignore=tests (Overwrites exisiting requirements.txt, ignores the tests directory)
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用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中获得所有直接子目录