【2023新教程】解决is not a supported wheel on this platform-解决pip has no attribute pep425tags-解决网上旧教程不适用的问题[通俗易懂]

【2023新教程】解决is not a supported wheel on this platform-解决pip has no attribute pep425tags-解决网上旧教程不适用的问题[通俗易懂]背景今天在给树莓配安装tensorflow的使用,提示tensorflow-2.0.0-cp37-none-linux_armv7l.whlisnotasupportedwheelonth

背景

今天在给树莓配安装tensorflow的时候,提示tensorflow-2.0.0-cp37-none-linux_armv7l.whl is not a supported wheel on this platform。
出现这个问题,是由于这个whl和系统python版本不匹配导致的。这个时候,需要我们找到当前python版本需要的whl命名格式,网上有不少教程提供了查看python支持whl名称的方法。
然而,网上的教程非常老旧,按照网上教程操作后,会提示pip has no attribute pep425tags。经过我多次搜集资料和尝试,总算找到了在pip 20.0等版本上可用的命令!

1 已知无效的方法

首先列举对于较新版本的pip无效的方法。如果你使用的是较新版本的pip,使用下面这些python语句,将会提示pip has no attribute pep425tags
无效旧教程一:

import pip
print(pip.pep425tags.get_supported())

无效旧教程二:

import pip._internal
print(pip._internal.pep425tags.get_supported())

上面为目前网上大量充斥的教程,这些均为旧版pip的教程并不适用于pip 20.0及以上版本,甚至不适用于临近pip 20.0的版本
使用上述旧教程,会得到pip has no attribute pep425tags。如下图所示。
【2023新教程】解决is not a supported wheel on this platform-解决pip has no attribute pep425tags-解决网上旧教程不适用的问题[通俗易懂]
在此,经过博主大量搜集资料和尝试,终于找到了在pip 20.0版本上可用的方法。

2 经测试有效的命令

我们可以通过下面这个经过测试有效的命令,来查看当前Python版本匹配那些文件。
有效命令如下(直接在命令行中输入,不要在Python解释器输入哦):

pip debug --verbose

输入这个命令后,会输出大量信息:
在这里插入图片描述

pip version: pip 20.1.1 from /home/pi/Softwares/venv3/lib/python3.7/site-packages/pip (python 3.7)
sys.version: 3.7.3 (default, Dec 20 2019, 18:57:59)
[GCC 8.3.0]
sys.executable: /home/pi/Softwares/venv3/bin/python
sys.getdefaultencoding: utf-8
sys.getfilesystemencoding: utf-8
locale.getpreferredencoding: UTF-8
sys.platform: linux
sys.implementation:
name: cpython
‘cert’ config value: global
REQUESTS_CA_BUNDLE: None
CURL_CA_BUNDLE: None
pip._vendor.certifi.where(): /home/pi/Softwares/venv3/lib/python3.7/site-packages/pip/_vendor/certifi/cacert.pem
pip._vendor.DEBUNDLED: False
vendored library versions:
appdirs1.4.3
CacheControl
0.12.6
colorama0.4.3
contextlib2
0.6.0.post1 (Unable to locate actual module version, using vendor.txt specified version)
distlib0.3.0
distro
1.5.0 (Unable to locate actual module version, using vendor.txt specified version)
html5lib1.0.1
ipaddress
1.0.23
msgpack1.0.0 (Unable to locate actual module version, using vendor.txt specified version)
packaging
20.3
pep5170.8.2
progress
1.5
pyparsing2.4.7
requests
2.23.0
certifi2020.04.05.1
chardet
3.0.4
idna2.9
urllib3
1.25.8
resolvelib0.3.0
retrying
1.3.3 (Unable to locate actual module version, using vendor.txt specified version)
setuptools44.0.0 (Unable to locate actual module version, using vendor.txt specified version)
six
1.14.0
toml0.10.0
webencodings
0.5.1 (Unable to locate actual module version, using vendor.txt specified version)
Compatible tags: 44
cp37-cp37m-manylinux2014_armv7l
cp37-cp37m-linux_armv7l
cp37-abi3-manylinux2014_armv7l
cp37-abi3-linux_armv7l
cp37-none-manylinux2014_armv7l
cp37-none-linux_armv7l
cp36-abi3-manylinux2014_armv7l
cp36-abi3-linux_armv7l
cp35-abi3-manylinux2014_armv7l
cp35-abi3-linux_armv7l
cp34-abi3-manylinux2014_armv7l
cp34-abi3-linux_armv7l
cp33-abi3-manylinux2014_armv7l
cp33-abi3-linux_armv7l
cp32-abi3-manylinux2014_armv7l
cp32-abi3-linux_armv7l
py37-none-manylinux2014_armv7l
py37-none-linux_armv7l
py3-none-manylinux2014_armv7l
py3-none-linux_armv7l
py36-none-manylinux2014_armv7l
py36-none-linux_armv7l
py35-none-manylinux2014_armv7l
py35-none-linux_armv7l
py34-none-manylinux2014_armv7l
py34-none-linux_armv7l
py33-none-manylinux2014_armv7l
py33-none-linux_armv7l
py32-none-manylinux2014_armv7l
py32-none-linux_armv7l
py31-none-manylinux2014_armv7l
py31-none-linux_armv7l
py30-none-manylinux2014_armv7l
py30-none-linux_armv7l
cp37-none-any
py37-none-any
py3-none-any
py36-none-any
py35-none-any
py34-none-any
py33-none-any
py32-none-any
py31-none-any
py30-none-any

从中我们可以看到Compatible tags字样,这些就是当前Python版本可以适配的标签。例如,我的Python版本是3.7.3,可以匹配下面这些文件名:

Compatible tags: 44
cp37-cp37m-manylinux2014_armv7l
cp37-cp37m-linux_armv7l
cp37-abi3-manylinux2014_armv7l
cp37-abi3-linux_armv7l
cp37-none-manylinux2014_armv7l
cp37-none-linux_armv7l
cp36-abi3-manylinux2014_armv7l
cp36-abi3-linux_armv7l
cp35-abi3-manylinux2014_armv7l
cp35-abi3-linux_armv7l
cp34-abi3-manylinux2014_armv7l
cp34-abi3-linux_armv7l
cp33-abi3-manylinux2014_armv7l
cp33-abi3-linux_armv7l
cp32-abi3-manylinux2014_armv7l
cp32-abi3-linux_armv7l
py37-none-manylinux2014_armv7l
py37-none-linux_armv7l
py3-none-manylinux2014_armv7l
py3-none-linux_armv7l
py36-none-manylinux2014_armv7l
py36-none-linux_armv7l
py35-none-manylinux2014_armv7l
py35-none-linux_armv7l
py34-none-manylinux2014_armv7l
py34-none-linux_armv7l
py33-none-manylinux2014_armv7l
py33-none-linux_armv7l
py32-none-manylinux2014_armv7l
py32-none-linux_armv7l
py31-none-manylinux2014_armv7l
py31-none-linux_armv7l
py30-none-manylinux2014_armv7l
py30-none-linux_armv7l
cp37-none-any
py37-none-any
py3-none-any
py36-none-any
py35-none-any
py34-none-any
py33-none-any
py32-none-any
py31-none-any
py30-none-any

这是真正解决了网上旧教程无效的问题。适用于pip 20.0等新版本的pip。

3 注意

之前旧版本的无效方法是Python语句,而此次有效命令则是pip命令,直接在命令行中输入,不要在Python解释器中输入哦
在找到python支持的标签后,就去下载对应的版本来安装吧~

4 修改记录

2020.9.28 修改部分句子,使语言更通顺。
2020.10.8 改正错别字,纠正了部分不准确的说法。
2020.11.30 修改了部分语句。
2021.4.20 修改错别字。
2021.10.19 修改了文章部分逻辑。
2023.08.13 验证本文教程的适用性,新增结果图片。

今天的文章【2023新教程】解决is not a supported wheel on this platform-解决pip has no attribute pep425tags-解决网上旧教程不适用的问题[通俗易懂]分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/71191.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注