列出将工作项目部署到其他地方(例如,在其他OS上)所需的所有依赖项的最有效方法是什么?

Python 2.7,Windows开发环境,不是每个项目都使用virtualenv,而是全局开发环境,根据需要安装库,可以从一个项目跳到下一个项目。

我跟踪了必须为给定项目安装的大多数(不确定所有)库。我没有跟踪与它们一起自动安装的任何子依赖项。进行pip freeze会同时列出所有列表以及已安装的所有其他库。

有没有一种方法可以列出您需要安装的项目,而不要多多少少,以部署该项目?

编辑鉴于以下答案,请进行一些说明。我的项目由一堆模块(由我编写)组成,每个模块都有一堆import。我是否应该将所有模块中的所有导入内容复制粘贴到一个文件中,进行排序以消除重复项,然后将所有内容从标准库中丢弃(我怎么知道它们是)?或者,还有更好的方法?这就是问题所在。

最佳答案

扫描您的import语句。您仅可能导入您明确想要导入的东西,而不是依赖项。

pip freeze一样列出一个 list ,然后创建并激活一个virtualenv。

执行pip install -r your_list,然后尝试在该virtualenv中运行您的代码。注意任何ImportError异常,将它们与软件包匹配,然后添加到列表中。重复执行直到代码运行没有问题。

现在,您有了一个列表,可以在部署站点上输入pip install

这是非常手动的操作,但是不需要任何外部工具,并且会迫使您确保代码可以运行。 (将测试套件作为检查来运行是很好的,但还不够。)

关于python - 列出Python中的依赖项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42237072/

10-12 22:41