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

背景

今天在给树莓配安装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。如下图所示。

在此,经过博主大量搜集资料和尝试,终于找到了在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 验证本文教程的适用性,新增结果图片。

  • 616
    点赞
  • 822
    收藏
    觉得还不错? 一键收藏
  • 163
    评论
"is not a supported wheel on this platform"是一个常见的Python安装报错信息,意思是在当前平台上不支持该包的安装。这个错误通常出现在使用pip安装一个.whl文件时,可能是由于版本不匹配或者平台不兼容所致。解决这个问题的方法有以下几种: 1. 确认Python版本:首先要确认你使用的是正确的Python版本。可以使用命令`python --version`或者`python3 --version`来查看当前Python版本。如果你想在Python2环境下安装.whl文件,但报错显示不支持该平台,那可能是因为你在Python3环境下执行了pip命令。确保你使用正确的Python版本来执行pip命令。 2. 更pip:如果你确认使用的是正确的Python版本,但仍然遇到该错误,那可能是因为你的pip版本太。可以使用命令`python -m pip install --upgrade pip`或者`python3 -m pip install --upgrade pip`来更pip到最版本。 3. 检查.whl文件:确保你下载的.whl文件与你的操作系统和Python版本兼容。有时候,下载的.whl文件可能与你的平台不匹配,导致安装报错。可以尝试下载其他版本的.whl文件,或者使用源代码安装包。 4. 使用虚拟环境:虚拟环境可以帮助你隔离不同版本的Python和包,避免冲突。创建一个的虚拟环境,并在其中安装你需要的包,可以解决平台不兼容的问题。可以使用`python -m venv <虚拟环境名称>`来创建虚拟环境,然后激活虚拟环境,并在其中使用pip来安装包。 总结来说,当出现"is not a supported wheel on this platform"报错时,首先要确认使用的是正确的Python版本,然后更pip,检查.whl文件的兼容性,以及尝试使用虚拟环境来解决平台不兼容的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [(2021年)is not a supported wheel on this platform解决方案](https://blog.csdn.net/qq_40734247/article/details/119391890)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Python使用pip安装报错:is not a supported wheel on this platform解决方法](https://download.csdn.net/download/weixin_38637918/12870748)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 163
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值