(2021年)is not a supported wheel on this platform解决方案

2023-11-10

今天安装环境时碰到了这个问题,一脸懵逼,经过查阅得知是因为某个.whl文件和python的版本不兼容导致了这个问题。我看了很多人的回答,把别人的成果总结起来发现其实解决这个问题也很简单,但是这里不保证可以适用所有人的环境。

造成这个问题的原因是因为版本的兼容性问题,通常解决方法是:
1.下载一个可以兼容版本的.whl文件(适用于Windows系统)
2.切换python版本(适用于Linux系统)

查看whl和python支持的版本

如果查看是否不兼容(报错了肯定是不兼容,但是需要弄清楚不兼容出现在哪里)。
执行如下命令:

pip debug --verbose
pip3 debug --verbose 

注意:如果此命令无法执行的话,可以去查阅文章底部的参考文献,有适合pip 20.0以下版本的方法。或者你最好先升级一下pip。

Windows系统执行第一条即可(如果只有一个python环境,通常是python3),Linux系统执行两条命令,执行命令以后可以看到whl文件和python版本的兼容情况。这里以我Windows系统举例说明:

在这里插入图片描述

cp37和py37应该指的都是python3.7及以上版本,所以可以看具体下载文件中会带有兼容版本的说明
注意:这里的cp可能指的是C Python。

这里以tensorflow举例说明:
从下面这幅图可以看出来,该文件的命名规范,首先是兼容的python版本,然后是操作系统,最后是CPU架构。这是一个很规范的命名,因为很多人的环境都是不一样的,必须要有这么多版本。
在这里插入图片描述

解决问题

whl文件可替换

如果你只是需要一个whl文件,但是版本和系统的python不兼容,那么你的解决方式就很简单了,直接去下载一个兼容的版本即可。

whl不可替换

我今天遇到的情况是属于不可替换的,因为那个whl文件属于一个系统的子部分。所以只能从系统的python环境上面去解决问题了。首先我们是通过pip来查看兼容性的,那么解决问题也是从pip入手。在Linux系统中会有一个默认的python2.7,但是现在大家几乎都会下载一个python3.+的版本。这样就有可能造成了pip的错误问题,因为一些错误网络教程的问题,很多人的pip和pip3会指向相同了。

这里以我的Windows系统举例:
在这里插入图片描述
这里无论是pip还是pip3都指向了python3的版本,这就导致我无法使用python2来安装包了。
pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。 基于此,你如果想要在python2环境安装一个whl文件,就会遇到文章标题的那个问题:is not a supported wheel on this platform

那么解决方案呢?也很简单,将pip和pip3的指向区分开即可。
在Linux系统下,执行此命令:which pip 得到pip的位置,然后修改最上面的注释,将python3改为python2,即可解决。在Windows下面,因为Linux的那行脚本只是单纯的注释了,这个不知道怎么解决。并且通常在Windows下面也只需要python3的版本,所以更换软件的版本显然是更明智的做法。

#!/usr/bin/python3   # 修改此为 #!/usr/bin/python2
# -*- coding: utf-8 -*-
import re
import sys

from pip._internal.cli.main import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

说明

这个教程应该可以解决大部分的问题了,不过也不能保证解决所有此类问题。因为每个人的环境都不相同,这点是很难保证的。而且很多教程都已经陈旧不堪,继续存在也只会误导到了别人,所以在网络上查询信息时一定要有一定的甄别能力,不能全盘相信别人的教程,我今天解决这个问题就踩了很多的坑。所以我在标题上面要加上时间,如果你看到的时候离这个时间已经很久了,那么这个解决方案可能就已经过时了。

参考文献

修改pip默认的Python版本方法
【2021新教程】解决is not a supported wheel on this platform-解决pip has no attribute pep425tags-解决网上旧教程不适用的问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(2021年)is not a supported wheel on this platform解决方案 的相关文章

随机推荐

  • 三目运算符的多层嵌套

    三目运算符的基础用法是二选一 当我们想多选一时就可以利用三目运算符的多层嵌套来完成 可以替代if多层判断 三目运算符的结构 根据不同的条件 执行不同的操作 返回不同的值 嵌套语法 条件1 值1或操作1 如果满足条件1 就返回值1或执行操作1
  • 超级账本Fabric区块链用弹珠游戏Marbles 部署

    Marbles 演示 Marbles GitHub地址 关于 Marbles 这个应用程序的基础网络是 Hyperledger Fabric 后者是一个 Linux Foundation 项目 您可能想查阅以下操作说明来稍微了解一下 Hyp
  • dumpsys meminfo内存分析解读(收集整合)

    OOM机制是机器底层的一种强制保鲜 在OOM发生的时候内核会排序强制杀掉进程来保证系统的继续运行 同样这种OOM异常容易发生在低内存机器上 比如512M 首先系统会根据程序是否是空进程 已经由用户关闭的不带有任何服务和provider的进程
  • bootstrap File Input 多文件上传插件使用记录(二)删除原文件

    bootstrap File Input 多文件上传插件使用记录 二 删除原文件 转自https blog csdn net github 36086968 article details 72830855 在上一篇文章中 主要介绍了fil
  • 【基础知识】4、python-opencv 超详细介绍

    文章目录 一 概述 1 1 安装 1 2 图像的表示 二 图像 2 1 读 存 显示 下载 2 1 1 读存显示 imread imwrite 2 1 2 下载 2 1 2 1 urllib 2 1 2 2 scikit image 2 2
  • 如何获取C++ Array的大小

    参考自chromium的处理方法如下 template
  • linux查看文件夹目录大小

    1 磁盘还剩多少空间 df h 2 当前的文件夹下的磁盘使用情况 du max depth 1 h 3 查看单个文件夹目录大小 du sh 文件或文件夹路径
  • 超级简单无任何第三方软件在安卓子系统中安装APK

    首先 你需要安装好安卓子系统 安装方法自行搜索 我是通过知乎网友的链接在微软商店直接下载的安卓子系统 无需先下载亚马逊商店 商店是后来自己装的 正事 打开子系统 高级设置 实验性功能 共享用户文件夹 开启 可以自定义文件夹 将需要的apk文
  • 用单链表优雅的写一个学生管理系统

    用单链表优雅的写一个学生管理系统 在基本的数据结构 单链表 Singly Linked List 中我们了解了如何用动态内存申请创建单链表 如何对单链表进行一些简单的操作 为进一步了解单链表以及其结构具有的功能 那么现在我们就用单链表来搞点
  • golang list to tree

    You can edit this code Click here and start typing package main import encoding json log 树 type Tree struct List map int
  • delete、truncate、drop的区别有哪些,该如何选择?不妨进来看看

    先看一个故事 上周同事小姐姐问我 哈哥你看 我发现MySQL有bug 我下午为了清理磁盘 明明删除了100万条MySQL数据 磁盘不仅没有变小 反而更满了呢 那你是怎么删除的 delete from table 呀 怪不得 其实要删除MyS
  • 路的始端,

    这是我的第一篇CSDN 目前准大二 大一恍恍惚惚就过去了如今还是个什么都不知道的小白 从现在开始要努力了 我要先把C语言基础打一下进而学Java 同时前端浅浅的学一下 希望有望成为全栈工程师 很多比赛 比如蓝桥杯什么的都不是很了解 而且什么
  • 全零网络IP地址0.0.0.0表示意义

    http liuzhigong blog 163 com blog static 17827237520114207278610 RFC 0 0 0 0 8 Addresses in this block refer to source h
  • 需求变更,敏捷项目应如何做?

    前两天我们在做项目复盘的时候 发现其实在整个过程中还是遇到了不少需求变更的问题 不过还好我们算是比较圆满地解决了这些突如其来的问题 相信也会有很多朋友和我们团队一样 经常遇到客户这边的需求变更 确实这是一个非常棘手的问题 不过在敏捷项目管理
  • MySQL高级用法:根据字段值拆分数据成多行

    需求描述 我这里需要根据c name中的字段值 根据逗号分割 转成多条数据 SELECT a id a c name substring index substring index a c name b help topic id 1 1
  • Linux下频繁读写文件,导致可用内存减少

    问题现象 Linux下从服务器下载文件时 通过回调函数一直写文件 频繁的进行write操作 导致系统可用内存一直减少 有时候可能会导致程序执行因为内存问题异常 测试代码如下 Copyright C 2019 All rights reser
  • 小程序分包配置

    在pages同级新建subPack文件夹 然后在pages中将分包配置进去 分包加载配置 此配置为小程序的分包加载机制 subPackages root subPack 子包的根目录 pages 这里的配置路径和pages里的一样 path
  • 【Linux下MySQL的初始化和配置】

    Linux下MYSQL的初始化和配置 一 初始准备 一 服务初始化 二 启动MYSQL 三 MYSQL登录 二 设置远程登录 一 确认网络 二 关闭防火墙 三 Linux下修改配置 一 初始准备 先去官网把需要的MYSQL版本下载并安装好
  • Spring Bean的生命周期(非常详细)

    Spring作为当前Java最流行 最强大的轻量级框架 受到了程序员的热烈欢迎 准确的了解Spring Bean的生命周期是非常必要的 我们通常使用ApplicationContext作为Spring容器 这里 我们讲的也是 Applica
  • (2021年)is not a supported wheel on this platform解决方案

    今天安装环境时碰到了这个问题 一脸懵逼 经过查阅得知是因为某个 whl文件和python的版本不兼容导致了这个问题 我看了很多人的回答 把别人的成果总结起来发现其实解决这个问题也很简单 但是这里不保证可以适用所有人的环境 造成这个问题的原因