如何在整个项目中处理python依赖项?

时间:2014-08-28 22:44:04

标签: python dependencies packages

让我们说当一个开发人员意识到他需要使用一些软件包时,他正在开发一个项目。 他使用pip来安装它。现在,在安装它之后,开发人员会将其作为requirements文件/ setup.py中的依赖项写下来吗?

如果他忘记写下项目的所有依赖关系(或者他没有做得更好,因为他没有长时间做),那同样的开发做了什么?

我在问PyPi使用外部软件包时的工作流程是什么?

2 个答案:

答案 0 :(得分:4)

命令:

pip freeze > requirements.txt 

会将python环境中当前的所有依赖项复制到requirements.txt中。 http://pip.readthedocs.org/en/latest/reference/pip_freeze.html

答案 1 :(得分:1)

这取决于项目。

如果您正在使用库,则需要将依赖项放在setup.py中,这样如果您将库放在PyPi上,人们就可以自动安装它,并自动依赖它

如果您正在使用Python(可能是Web应用程序)处理应用程序,requirements.txt文件将更容易部署。您可以将所有代码复制到您需要的位置,使用virtualenv或pyvenv设置虚拟环境,然后执行pip install -r requirements.txt。 (你也应该这样做以便开发,这样你就不会在全局范围内乱搞一些库。)

一旦安装好您正在安装的软件包,而不是试图找出最终需要哪些软件包,就可以更轻松地将其安装到requirements.txt。我这样做,我永远不会忘记的是我先将包写入文件,然后安装pip install -r

如果您忘记了已安装的内容,

pip freeze会有所帮助,但您应该始终阅读其创建的文件,以确保您确实需要其中的所有内容。如果您正在使用virtualenv,它将比您在全球范围内安装所有软件包提供更好的结果。