为什么 pip 不使用 sdist 包的元数据?
Why is pip not utilizing metadata of sdist package?
当我为 pip
使用默认索引 URL 时,它正确地理解了某些版本的包与环境不兼容:
$ pip -v -i https://pypi.python.org/simple install setuptools
[...]
https://files.pythonhosted.org/packages/8f/6b/0dcf95d95086ce459152e4c0ac306f2dbbcf984177a2b8b77b320ebfbf22/setuptools-53.1.0.tar.gz#sha256=8181c4625cd58fa7817761e0fa60f6fa3adc4c437f5c25377b1aefa861ca15a2 (from https://pypi.org/simple/setuptools/) (requires-python:>=3.6)
这是预期的行为(选择了另一个合适的 setuptools
版本)。但是当我从自己的镜像安装时,选择了这个错误的版本:
$ pip -v -i https://my.pypi.mirror install setuptools
[...]
Found link https://my.pypi.mirror/%2Bf/818/1c4625cd58fa7/setuptools-53.1.0.tar.gz#sha256=8181c4625cd58fa7817761e0fa60f6fa3adc4c437f5c25377b1aefa861ca15a2 (from https://my.pypi.mirror/+simple/setuptools/), version: 53.1.0
Using version 53.1.0
这些文件与其 SHA256 和显示的相同。在第二种情况下 pip
无法正确使用包的元数据的原因可能是什么?
您可能遇到了镜像没有提供任何 requires-python
信息的情况。例如,查看 https://pypi.org/simple/setuptools 页面的源代码并查看某些 <a>
标记(链接)如何具有 data-requires-python=">=3.6"
属性。这可能是你的镜像没有提供的信息,导致依赖解析有不同的选择。
当我为 pip
使用默认索引 URL 时,它正确地理解了某些版本的包与环境不兼容:
$ pip -v -i https://pypi.python.org/simple install setuptools
[...]
https://files.pythonhosted.org/packages/8f/6b/0dcf95d95086ce459152e4c0ac306f2dbbcf984177a2b8b77b320ebfbf22/setuptools-53.1.0.tar.gz#sha256=8181c4625cd58fa7817761e0fa60f6fa3adc4c437f5c25377b1aefa861ca15a2 (from https://pypi.org/simple/setuptools/) (requires-python:>=3.6)
这是预期的行为(选择了另一个合适的 setuptools
版本)。但是当我从自己的镜像安装时,选择了这个错误的版本:
$ pip -v -i https://my.pypi.mirror install setuptools
[...]
Found link https://my.pypi.mirror/%2Bf/818/1c4625cd58fa7/setuptools-53.1.0.tar.gz#sha256=8181c4625cd58fa7817761e0fa60f6fa3adc4c437f5c25377b1aefa861ca15a2 (from https://my.pypi.mirror/+simple/setuptools/), version: 53.1.0
Using version 53.1.0
这些文件与其 SHA256 和显示的相同。在第二种情况下 pip
无法正确使用包的元数据的原因可能是什么?
您可能遇到了镜像没有提供任何 requires-python
信息的情况。例如,查看 https://pypi.org/simple/setuptools 页面的源代码并查看某些 <a>
标记(链接)如何具有 data-requires-python=">=3.6"
属性。这可能是你的镜像没有提供的信息,导致依赖解析有不同的选择。