2021 年 当安装 wheel 出现 whl is not a supported wheel on this platform. 的时候

伴随着的问题还有 no attribute 'pep425tags' 找不到这个接口。

2021 年了,这些接口在代码里都改得面目全非了,看 Python-3.8.5/install-pip/usr/lib/python3.8/site-packages/pip/_internal/models/target_python.py 可知现在已经改到如下接口。

from pip._internal.utils.compatibility_tags import get_supported
get_supported()
[<cp38-cp38-linux_armv7l @ 33338184>, <cp38-abi3-linux_armv7l @ 33220184>, <cp38-none-linux_armv7l @ 33466424>, <cp37-abi3-linux_armv7l @ 31721976>, <cp36-abi3-linux_armv7l @ 33452984>, <cp35-abi3-linux_armv7l @ 33451912>, <cp34-abi3-linux_armv7l @ 33469000>, <cp33-abi3-linux_armv7l @ 33467304>, <cp32-abi3-linux_armv7l @ 33448392>, <py38-none-linux_armv7l @ 33244520>, <py3-none-linux_armv7l @ 31683992>, <py37-none-linux_armv7l @ 33447784>, <py36-none-linux_armv7l @ 33449320>, <py35-none-linux_armv7l @ 33449560>, <py34-none-linux_armv7l @ 33449800>, <py33-none-linux_armv7l @ 33459864>, <py32-none-linux_armv7l @ 33450040>, <py31-none-linux_armv7l @ 33448600>, <py30-none-linux_armv7l @ 33449080>, <cp38-none-any @ 31499464>, <py38-none-any @ 31514488>, <py3-none-any @ 33461320>, <py37-none-any @ 33446744>, <py36-none-any @ 33448072>, <py35-none-any @ 33459192>, <py34-none-any @ 33244664>, <py33-none-any @ 33447320>, <py32-none-any @ 33457416>, <py31-none-any @ 33460936>, <py30-none-any @ 33463016>]

其中 cp38-cp38-linux_armv7l 就是在 安装这个 whl 包会进行识别的参考,而这个 whl 包在打包的时候由 _PYTHON_HOST_PLATFORM="linux-armv7l" 标签决定。

注意,whl 尾巴的标签不同不允许安装,但这并不代表它不能使用,只是一个字符串判断,也就是你手工改过来也是可以安装的,可以安装也不代表可以运行,自行注意吧。

例如 linux_armv7 不是 linux_armv7l 。

原文地址:https://www.cnblogs.com/juwan/p/14250104.html