Windows环境安装mysqlclient遇mysql.h缺失错误,求解决方法
解决Windows下安装mysqlclient时找不到mysql.h的问题
问题场景
学习Django并使用MySQL数据库,已解决“Microsoft C++ 14.0 or greater required”的编译工具问题,但安装mysqlclient时出现编译错误,提示找不到mysql.h文件,错误日志如下:
running build_ext building 'MySQLdb._mysql' extension creating build\temp.win32-cpython-38 creating build\temp.win32-cpython-38\Release creating build\temp.win32-cpython-38\Release\MySQLdb "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\HostX86\x86\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -Dversion_info=(2,1,1,'final',0) -D__version__=2.1.1 "-IC:\Program Files (x86)\MariaDB\MariaDB Connector C\include\mariadb" "-IC:\Program Files (x86)\MariaDB\MariaDB Connector C\include" -IC:\Users\Feruz\.virtualenvs\storefront-GD3EPR4W\include -Ic:\users\feruz\appdata\local\programs\python\python38-32\include -Ic:\users\feruz\appdata\local\programs\python\python38-32\Include "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\include" "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\ATLMFC\include" "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\cppwinrt" /TcMySQLdb/_mysql.c /Fobuild\temp.win32-cpython-38\Release\MySQLdb/_mysql.obj _mysql.c MySQLdb/_mysql.c(29): fatal error C1083: 无法打开包括文件: mysql.h: No such file or directory, error: command 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.34.31933\\bin\\HostX86\\x86\\cl.exe' failed with exit code 2 note: This error originates from a subprocess, and is likely not a problem with pip. error: legacy-install-failure × Encountered error while trying to install package. ╰─> mysqlclient note: This is an issue with the package mentioned above, not pip. hint: See above for output from the failure. [0m Installation Failed
解决方案
方法1:安装预编译二进制包(最简便)
跳过本地编译步骤,直接安装预编译好的版本:
pip install mysqlclient==2.1.1 --only-binary :all:
该参数会强制pip下载对应Python版本和系统位数的预编译包,无需依赖本地编译环境和MySQL头文件。
方法2:配置MySQL/MariaDB开发库路径
如果必须本地编译,需确保编译工具能找到mysql.h:
- 确认已安装包含开发文件的MariaDB Connector C或MySQL Connector/C(仅运行时版本不含头文件),检查安装目录的
include文件夹下是否存在mysql.h。 - 在命令提示符中设置环境变量,指定头文件和库文件路径(以MariaDB为例):
set MYSQLCLIENT_CFLAGS="-IC:\Program Files (x86)\MariaDB\MariaDB Connector C\include" set MYSQLCLIENT_LDFLAGS="-LC:\Program Files (x86)\MariaDB\MariaDB Connector C\lib\mariadb" - 执行完上述命令后,重新运行
pip install mysqlclient。
方法3:使用替代库pymysql
无需安装mysqlclient,用pymysql替代,Django可直接兼容:
- 安装pymysql:
pip install pymysql - 在Django项目根目录的
__init__.py文件中添加以下代码:
之后Django会自动将pymysql作为MySQL数据库驱动使用。import pymysql pymysql.install_as_MySQLdb()
内容的提问来源于stack exchange,提问作者alex atamuradow
相关产品推荐
相关产品推荐

