繁体   English   中英

pip 冻结,不依赖已安装的软件包

[英]pip freeze without dependencies of installed packages

当我执行pip freeze我会得到我明确安装的包以及那些依赖于这些包的包。

例如:

$ pip install fabric
...
$ pip freeze
Fabric==1.0.1
paramiko==1.7.6
pycrypto==2.3

好的,但后来我开始在另一个环境中使用pip install安装这个 requirements.txt 我会得到相同的结果,删除最后两行。

所以我的问题是:我怎样才能创建最简化的 requirements.txt 而不显示所有可计算的依赖项?

现在有(免责声明:我做到了)。

您只需要从 PyPI 安装pip-chill并从 Python 环境运行pip-chill

如果您喜欢冒险并且不想固定版本(或想使用 pip-compile),您可以使用pip-chill --no-version ,它会给您当前环境的最低要求。

https://github.com/rbanffy/pip-chill

没有办法用 pip 创建“最简化的 requirements.txt”——我不知道在这种情况下你是否需要它。

所有包都放在 requirements.txt 中是很好的,因为您确定哪些依赖项版本适用于您的环境。

考虑 paramiko 得到更新,并打破向后兼容性:你会遇到问题。

pipdeptree是另一种选择。

它生成完整的 requirements.txt(使用pipdeptree -f ),如下所示:

jupyter==1.0.0
  ipykernel==5.4.3
    ipython==7.19.0
      backcall==0.2.0
      decorator==4.4.2
      jedi==0.17.2
        parso==0.7.1

该文件有两个用途:

  • 用作传统的 requirements.txt 提供给pip install
  • 简单地与grep '^\\w' requirements.txt一起用作开发人员友好的包列表(如由pip-chill创建的包列表)。

我认为删除版本的简单方法是在运行 pip freeze 后 cut -d"=" -f 1。

pip3 freeze | cut -d"=" -f1 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM