列出在其他地方部署工作项目所需的所有依赖项(比如说在不同的操作系统上)的最有效方法是什么?
Python 2.7,Windows开发环境,不是每个项目使用virtualenv,而是全局开发环境,根据需要安装库,愉快地从一个项目跳到下一个项目.
我已经跟踪了我必须为给定项目安装的大多数(不确定所有)库.我没有跟踪自动安装它们的任何子依赖项.做pip freeze列表,以及所有其他已安装的库.
有没有办法列出您需要安装的内容,不多也不少,以便部署项目?
注意:无法想象这已经没有Q + A,但我找不到它.
编辑鉴于以下答案,一些澄清.我的项目由一堆模块(我写的)组成,每个模块都有一堆imports.我是否应该将所有模块中的所有导入复制粘贴到一个文件中,排序消除重复,并从标准库中丢弃所有(以及我怎么知道它们)?或者,还有更好的方法?这就是问题所在.
Hai*_*ang 55
pipreqs解决了这个问题.它生成项目级的 requirements.txt文件.
安装pipreqs: pip install pipreqs
pipreqs /path/to/your/project/如果你想阅读更多的优势pipreqs超过pip freeze,读它从这里
900*_*000 16
扫描您的import陈述.您可能只导入您明确要导入的内容,而不是依赖项.
制作一个像那样的列表pip freeze,然后创建并激活virtualenv.
做pip install -r your_list,并尝试在virtualenv中运行您的代码.注意任何ImportError异常,将它们与包匹配,然后添加到列表中.重复直到您的代码运行没有问题.
现在,您有一个要pip install在部署站点上提供的列表.
这是非常手动的,但不需要外部工具,并强制您确保代码运行.(运行测试套件作为检查很好,但还不够.)
Ven*_*ari 11
在您的终端类型上:
pip install pipdeptree
cd <your project root>
pipdeptree
Run Code Online (Sandbox Code Playgroud)
您可以简单地使用pipreqs,使用以下命令安装它:
pip install pipreqs
Run Code Online (Sandbox Code Playgroud)
然后,pipreqs .在文件目录中键入:。将为您创建一个名为“requirements”的文本文件,如下所示:
numpy==1.21.1
pytest==6.2.4
matplotlib==3.4.2
PySide2==5.15.2
Run Code Online (Sandbox Code Playgroud)