You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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可直接兼容:

  1. 安装pymysql:
    pip install pymysql
    
  2. 在Django项目根目录的__init__.py文件中添加以下代码:
    import pymysql
    pymysql.install_as_MySQLdb()
    
    之后Django会自动将pymysql作为MySQL数据库驱动使用。

内容的提问来源于stack exchange,提问作者alex atamuradow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 20:55:57