作者:记忆的旅行者 | 来源:互联网 | 2023-09-14 22:18
Python ***whl is not a supported wheel on this platform.(Django框架安装MySQL驱动的记录)
Django框架是一个功能比较齐全的框架,当然该框架支持各种数据库的Python应用连接,不过,在使用框架前需要环境
配置,而MySQLclinet也就是mysql客户端是必须安装的,如果,你需要你的应用能够使用MySQL数据库。
安装MySQLclinet有两种方式,第一种,执行 pip install mysqlclient命令,不过此命令在Linux下一般没有问题,在Windows下,通常会提示vc++库版本不正确,会很快报错失败,第二种,网站下载编译好的whl文件直接安装,
网址为:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient,
根据自己机器上的Python版本选择下载对应的文件即可,我的机器上Python版本是3.8,Windows版本是64位win7:
下载完毕后,cmd执行命令:pip install mysqlclient-1.4.6-cp38-cp38-win_amd64:
出现报错提示:mysqlclient-1.3.13-cp38-cp38m-win_amd64.whl is not a supported wheel on this platform
意思为该版本不是系统所支持whl,反复核对后,仍然不能安装。
通过 pip 检查工具检查接受安装的标签。打开命令行,如果是 64 位操作系统,输入下列内容:
import pip._internal
print(pip._internal.pep425tags.get_supported())
#输出为:
[('cp38', 'cp38m', 'win_amd64'), ('cp38', 'none', 'win_amd64'), ('py3', 'none', 'win_amd64'), ('cp38', 'none', 'any'), ('cp3', 'none', 'any'), ('py38', 'none', 'any'), ('py3', 'none', 'any'), ('py37', 'none', 'any'), ('py36', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]
经检查,下载的文件名称为mysqlclient-1.4.6-cp38-cp38-win_amd64,而pip安装标签需求的关于64位系统Python版本3.8的为
('cp38', 'cp38m', 'win_amd64'), ('cp38', 'none', 'win_amd64'), ('py3', 'none', 'win_amd64'), ('cp38', 'none', 'any'), ('cp3', 'none', 'any'), ('py38', 'none', 'any')这四种格式,更改下载的文件名称为上述四个名称任意一个即可,
也就是更改名称为:mysqlclient-1.4.6-cp38-none-win_amd64
不在报错,直接通过安装。
如果机器Windows为32位的,通过 pip 检查工具检查接受安装的标签,命令为:
>>> import pip
>>> print(pip.pep425tags.get_supported())
如果报错,首先检查下载的文件的版本号和本机的Python版本已经本机的系统位数是否一致,如果一致,仍然报错,
通过pip检查接受安装的标签,将文件名修改为符合的pip接受安装标签即可。
=============================================================================================
- 补充说明:查询当前pip所定义的安装标签需求,原理为导入pip目录下的_internal目录下的pep425tags.py文件并调用其中的get_supported()方法。也就是说32位系统和64系统的查询差异在pep425tags.py文件的位置不同,64位系统是在pip文件夹下的_internal文件夹下,32为没有_internal文件夹,仅此而已。