gpt4 book ai didi

python - "pip wheel"和 "pip download"的区别?

转载 作者:行者123 更新时间:2023-12-04 08:59:51 56 4
gpt4 key购买 nike

我想找出这两个 python 命令之间的区别:

pip wheel --wheel-dir=some_dir -r requirement.txt

pip download -d some_dir -r requirement.txt

一开始我以为“pip download”默认以'whl'格式从pypi.org索引下载需求并将它们放在some_dir中,而“pip wheel”'提取'并构建需求,仍然在'whl'中格式,来自当前的 python 环境,并将它们放在 some_dir 中。但显然他们两个所做的是从 pypi.org 索引(默认情况下)下载依赖项。事实上,我在没有安装任何“requirements.txt”的(虚拟)python 环境中尝试了“pip wheel”命令,但仍然在“some_dir”中找到了所有“whl”。不过,官方文档并没有很清楚地说明这一 pip 。

因此我的问题是:

  1. 那么这两个命令是等价的吗? (在这种情况下,这看起来像是指令的复制,Guido 叔叔并不是一个好的设计原则!)
  2. 如何实现我的目标,即从我的 python 环境中获取所需的 whls 并忽略任何互联网“索引”? (假设我已经在从 pypi.org 获得的 venv 中安装了一个模块,然后我自定义了该模块,并且我需要将这些修改带到每个新的克隆 venv 环境中,这些环境是使用自定义的 whl 模块文件创建的)

提前致谢!

最佳答案

我也很好奇这个问题,官方文档真的很模棱两可。

首先,根据我的实验,您提供的两个命令将产生相同的输出,并且过程非常相似。

但是仔细阅读了官方文档后,我发现这两个命令的某些选项是不同的。

  • 对于pip download,这个命令专注于从某处下载包,甚至它也会尝试构建它,但它会回退到下载如果无法构建,请提供源代码包。您可以通过一些选项来过滤要下载的包,即使这些包与您当前的环境不兼容。比如--platform, --python-version, --implementation, 所以你可以下载包你想要的口译员。

  • 对于 pip wheel,此命令的重 pip 是为包及其依赖项构建一个 wheel。它提供选项 --build-option 让您自定义构建过程。因此,使用此命令您只能下载与您当前的解释器和平台兼容的包。

在我看来,pip wheel 更像是 pip install 而不是 pip download,因为它只能“下载”当前的包口译员。


现在回答您的问题:

  1. 这两个命令是等价的吗? (在这种情况下,这看起来像是指令的复制,Guido 叔叔真的不是一个好的设计原则!)

    回答:对于与当前解释器兼容的包,是的,它们几乎是等效的,除非您需要某些构建选项。

  2. 我怎样才能实现我的目标,即从我的 python 环境中获取所需的 whls 并忽略任何互联网“索引”?

    回答:这两个命令都可以从本地索引或本地目录下载,但如果您想要其他平台的包,则需要pip download。在您的情况下,您可以创建自己的索引或一个包含所有需要的包的目录,并每次都从那里安装。

期待更准确的答案。

关于python - "pip wheel"和 "pip download"的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63615283/

56 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com