pip freeze 不依赖已安装的软件包

发布于 2024-11-05 10:21:30 字数 328 浏览 0 评论 0原文

当我执行pip freeze时,我得到了我显式安装的包以及那些依赖于这些包的包。

例如:

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

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

所以我的问题是:如何创建最简化的requirements.txt,其中不显示所有可计算的依赖项?

When I do pip freeze I get the packages I've explicitly installed plus those packages that are dependencies of those packages.

For example:

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

Ok fine but then I move to install this requirements.txt on another environment with pip install I'd get the same result with the last 2 lines removed.

So my question is: how I can I create the most simplified requirements.txt where all calculable dependencies are not shown?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

吹梦到西洲 2024-11-12 10:21:30

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

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

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

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

Now there is (disclaimer: I did it).

All you need is to install pip-chill from PyPI and run pip-chill from your Python environment.

If you are feeling adventurous and don't want to pin versions (or want to use pip-compile), you can use pip-chill --no-version and it'll give you the minimal requirements for your current environment.

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

我很OK 2024-11-12 10:21:30

无法使用 pip 创建“最简化的requirements.txt” - 我不知道在这种情况下您是否需要它。

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

想想 paramiko 更新并破坏向后兼容性:你会遇到问题。

There is no way to create "the most simplified requirements.txt" with pip - and I don't know if you would need it in this case.

It is good to have all packages in the requirements.txt, because you are sure about what dependencies versions work with your environment.

Think about paramiko getting updated, and breaking backwards compatibilities: you would have problems.

说不完的你爱 2024-11-12 10:21:30

我认为删除版本的简单方法是在运行 pip freeze 后剪切 -d"=" -f1

pip3 freeze | cut -d"=" -f1 

I think the simply way to remove version is cut -d"=" -f1 after having run pip freeze.

pip3 freeze | cut -d"=" -f1 
少女情怀诗 2024-11-12 10:21:30

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

该文件有两个用途:

  • 用作输入到pip install的传统requirements.txt;
  • 只需使用 grep '^\w'requirements.txt 即可用作开发人员友好的软件包列表(如 pip-chill 创建的列表)。

pipdeptree is another option.

It produces full requirements.txt (with pipdeptree -f) like this:

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

This file serves two purposes:

  • Used as a traditional requirements.txt fed to pip install;
  • Used as a developer-friendly packages list (like the one created by pip-chill) simply with grep '^\w' requirements.txt.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文