列出将工作项目部署到其他地方(例如,在不同的OS上)所需的所有依赖项的最有效方法是什么?
Python 2.7,Windows开发环境,不是每个项目都使用virtualenv,而是全局开发环境,根据需要安装库,可以从一个项目跳到下一个项目。
我跟踪了必须为给定项目安装的大多数(不确定 所有 )库。我 没有 跟踪与它们一起自动安装的任何子依赖项。这样做pip freeze同时列出,以及所有曾经被安装的其他库。
pip freeze
有没有一种方法可以列出您需要安装的项目,而不要多多少少,以部署该项目?
编辑 鉴于以下答案,需要一些澄清。我的项目由一堆模块(我写过)组成,每个模块都有一堆imports。我是否应该将所有模块中的所有导入内容复制粘贴到一个文件中,进行排序以消除重复项,然后将所有内容从标准库中丢弃(我怎么知道它们是)?或者,还有更好的方法?这就是问题所在。
import
扫描您的import陈述。您仅可能导入您明确想要导入的东西,而不是依赖项。
像这样列出一个清单pip freeze,然后创建并激活virtualenv。
这样做pip install -r your_list,然后尝试在该virtualenv中运行您的代码。注意所有ImportError异常,将它们与软件包匹配,然后添加到列表中。重复执行直到代码运行没有问题。
pip install -r your_list
ImportError
现在,您可以pip install在部署站点上找到列表。
pip install
这是非常手动的操作,但是不需要任何外部工具,并且会迫使您确保代码可以运行。(将测试套件作为检查来运行是很好的,但还不够。)