Windows 10系统下安装Python版MySQLdb遇cl.exe错误求助
cl.exe缺失的问题 我之前在Windows 10上给Python装MySQL相关依赖时,也碰到过一模一样的问题——不管是执行pip install mysqlclient还是easy_install mysql-python,安装脚本都直接失败,核心错误就是:
error: command 'cl.exe' failed: No such file or directory
E:\Python\Django-PyCharm\DjangoPyCharmWeb>easy_install mysqlclient
Searching for mysqlclient
Reading https://pypi.python.org/simple/mysqlclient/
Downloading https://pypi.python.org/packages/6f/86/b...
先说说原因
cl.exe是Visual Studio自带的C语言编译器,而mysqlclient、mysql-python这类包都包含需要编译的C扩展模块,系统里没装对应编译环境的话,自然会报错找不到这个工具。
下面给你几个实用的解决办法,按省心程度排序:
办法一:直接安装预编译的二进制包(最推荐)
不用自己折腾编译,直接装现成的编译好的包就行。你可以直接用pip尝试安装(现在pip默认会优先找二进制包):pip install mysqlclient如果还是不行,就找对应你Python版本和系统位数的
.whl文件(比如Python 3.11 + 64位系统就找带cp311和win_amd64的文件),下载到本地后执行:pip install 你下载的文件名.whl办法二:安装Visual Studio编译环境
如果你一定要自己编译安装,就得装Visual Studio的「Desktop development with C++」工作负载——安装的时候记得勾选对应Python版本的工具集(比如Python 3.8及以上建议用Visual Studio 2019或更高版本)。
安装完成后,不要直接用普通的命令提示符,要打开Visual Studio自带的「x64 Native Tools Command Prompt」(对应64位系统),然后在这个窗口里执行pip安装命令,这样系统就能找到cl.exe了。办法三:改用纯Python的MySQL库(不用编译)
如果不想碰编译环境,可以换用pymysql,这是纯Python实现的MySQL客户端,完全不需要编译:pip install pymysql要是你是在Django项目里用,只需要在项目根目录的
settings.py开头加几行代码,就能让Django把它当作MySQLdb来用:import pymysql pymysql.install_as_MySQLdb()
内容的提问来源于stack exchange,提问作者Hedayat Hoshmand

