我应该如何为Python项目生成requirements.txt?
这是 pip 卡住的问题。假设我的软件包P需要A,B,C。假设C是一个导入X,Y,Z的库,但是P仅需要X。那么,如果我:
1) Install A
2) Install B
3) Install C, which installs X, Y, Z
4) Do a pip freeze into P's requirements.txt
然后,P的requirements.txt如下所示:
1) A
2) B
3) C
4) X
5) Y
6) Z
但是在我的Python安装中实际上不需要Y和Z即可运行P。
据我所知,运行
pip freeze
生成P的需求将显示所有依赖关系,因此是P实际依赖关系的超集。
最佳答案
virtualenv的目的是完全控制已安装的软件包。
假设您只列出了A,B,C和X。每次从该需求文件创建一个新的virtualenv时,您将获得Y和Z的最新版本。这有几个问题:
pip freeze
并非旨在找出最低要求。它旨在使将完整的应用程序一致地部署到许多不同的环境中。这意味着它会谨慎行事,并列出可能会合理影响您的项目的所有内容。 由于这些原因,您不应尝试从需求文件中删除Y和Z。
关于python-3.x - 我应该如何生成requirements.txt? pip 卡住不是一个好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30363976/