为什么我不能从 pip 在 Windows 上下载最新版本的软件包?



根据文档和PEP425,我创建了三个pip轮子(每个windows、linux和mac都有一个,带有特定于平台的二进制文件(。

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        27/11/2020     15:08        3099789 pyomexmeta-1.1.20-cp38-cp38-macosx_10_15_x86_64.whl
-a----        27/11/2020     15:08        5128081 pyomexmeta-1.1.20-cp38-cp38-manylinux1_x86_64.whl
-a----        27/11/2020     15:08        2682188 pyomexmeta-1.1.20-cp38-cp38-win_amd64.whl

然后我使用上传到pypi

twine upload *

linux版本运行完美:

pip install pyomexmeta==1.1.20 

但当我在windows上尝试相同的命令时,我会得到

(base) PS C:x> pip install pyomexmeta==1.1.20
ERROR: Could not find a version that satisfies the requirement pyomexmeta==1.1.20 (from versions: 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.1.7, 1.1.8, 1.1.9, 1.1.10, 1.1.11, 1.1.12, 1.1.13, 1.1.14, 1.1.15, 1.1.16, 1.1.17)
ERROR: No matching distribution found for pyomexmeta==1.1.20

查看我的包的pypi列表可以发现我想要的文件已经存在,但它还没有被下载。我唯一的想法是平台标签一定是错的。然而PEP425表示

平台标记只是distutils.util.get_platform((,带有所有连字符-和句点。替换为下划线_。

所以:

In [7]: from distutils import util
In [8]: util.get_platform()
Out[8]: 'win-amd64'

那么为什么我不能从pip下载pyomexmeta-1.1.20呢?

对意见的回应

(base) PS D:bcftools> pip --version
pip 19.3.1 from C:Minicondalibsite-packagespip (python 3.7)

更新pip是个好主意,但遗憾的是,它对我没有帮助:

(base) PS D:bcftools> C:Minicondapython.exe -m pip install --upgrade pip
Collecting pip
Using cached https://files.pythonhosted.org/packages/cb/28/91f26bd088ce8e22169032100d4260614fc3da435025ff389ef1d396a433/pip-20.2.4-py2.py3-none-any.whl
Installing collected packages: pip
Found existing installation: pip 19.3.1
Uninstalling pip-19.3.1:
Successfully uninstalled pip-19.3.1
Successfully installed pip-20.2.4
(base) PS D:bcftools> pip install pyomexmeta==1.1.20
ERROR: Could not find a version that satisfies the requirement pyomexmeta==1.1.20 (from versions: 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.1.7, 1.1.8, 1.1.9, 1.1.10, 1.1.11, 1.1.12, 1.1.13, 1.1.14, 1.1.15, 1.1.16, 1.1.17)
ERROR: No matching distribution found for pyomexmeta==1.1.20```

pip --version显示它适用于Python 3.7。您的轮子适用于Python 3.8。要安装它们,您需要Python 3.8中的pip。任一

pip3.8 install pyomexmeta==1.1.20

python3.8 -m pip install pyomexmeta==1.1.20

PS。我必须承认,我不知道如何在Windows中调用它。从未使用过。

PPS。来自@Doyousketch2评论:

py -3.8 -m pip install pyomexmeta==1.1.20

最新更新