0

当我使用默认索引 URL 时pip,它正确理解包的某些版本与环境不兼容:

$ 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无法正确使用包的元数据的原因是什么?

4

1 回答 1

1

您可能会遇到镜像未提供任何requires-python信息的情况。例如,查看https://pypi.org/simple/setuptools页面的源代码,了解一些<a>标签(链接)如何具有data-requires-python="&gt;=3.6"属性。这可能是您的镜像未提供的信息,并使依赖关系解析出现不同的选择。

于 2021-03-12T17:23:25.403 回答