我应该如何为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
Run Code Online (Sandbox Code Playgroud)
然后P的requirements.txt看起来像:
1) A
2) B
3) C
4) X
5) Y
6) Z
Run Code Online (Sandbox Code Playgroud)
但是在我的Python安装中实际上并不需要Y和Z来运行P.
据我所知,运行pip freeze生成P的需求将显示依赖关系的所有依赖关系,因此是P的实际依赖关系的超集.
virtualenv的目的是完全控制所安装的软件包.
假设您只列出了A,B,C和X.每次从该需求文件创建一个新的virtualenv时,您将获得最新版本的Y和Z.这有几个问题:
pip freeze不是为了确定最低要求.它旨在使整个应用程序能够始终如一地部署到许多不同的环境中.这意味着它会慎之又慎的一侧,并列出一切可能合理影响您的项目.出于这些原因,您不应尝试从需求文件中删除Y和Z.
| 归档时间: |
|
| 查看次数: |
3185 次 |
| 最近记录: |