让我们说当一个开发人员意识到他需要使用一些软件包时,他正在开发一个项目。
他使用pip来安装它。现在,在安装它之后,开发人员会将其作为requirements
文件/ setup.py
中的依赖项写下来吗?
如果他忘记写下项目的所有依赖关系(或者他没有做得更好,因为他没有长时间做),那同样的开发做了什么?
我在问PyPi使用外部软件包时的工作流程是什么?
答案 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,它将比您在全球范围内安装所有软件包提供更好的结果。