python3.7安装mysqlclient失败问题
问题
直接使用pip install安装mysqlclient最新版本2.1.1失败了,提示“Failed building wheel for mysqlclient”
解决步骤:
-
换wheel方式安装,去pypi官网准备下载文件,突然发现2.1.1只支持py38及以上;
-
换2.1.0,pip install mysqlclient==2.1.0也失败,原因一样;
-
继续wheel方式安装
-
下载之后pip install mysqlclient-2.1.0-cp37-cp37m-win_amd64.whl,提示“whl is not a supported wheel on this platform.”;
-
可能是whl文件名不正确,网上查找的print(pip._internal.pep425tags.get_supported())查看支持whl文件名方式不可用,——因为pip._internal中没有pep425tags.py文件;
-
使用pip debug --verbose查看, 发现格式应该为cp37-cp37m-win32;
-
改成mysqlclient-2.1.0-cp37-cp37m-win32.whl后安装成功,但运行时提示错误(原因是实际安装未完全成功,存在一个文件_mysql.cp37-win_amd64.pyd):
from . import _mysql ImportError: cannot import name '_mysql' from 'MySQLdb'
-
-
找到根源,本地很早之前安装的python是32位的,mysqlclient只提供64位的库(估计前面直接pip install失败也是这个原因);
-
尝试tar.gz文件安装:
- 下载压缩文件后,解压缩,进入setup.py文件所在目录,运行python setup.py install, 提示“mysql.h”: No such file or directory
- 将本地mysql-5.7.38\include目录下的mysql.h,复制粘贴到提示信息中的任一目录(如 Windows Kits\10\Include\10.0.18362.0\winrt)中去,直至不提示.h文件缺失为止;
- 提示缺少文件mariadbclient.lib, —— 这个真找不到了, 用别的文件改名字替换也会有其他问题
哈哈哈,以上招数都没用,
最终:下载python3.7 64位的安装包,重新安装; 然后pip install mysqlclient==2.1.0搞定!!!