Windows 下 pip install mysqlclient 或 MySQL-python 經常報 fatal error C1083: Cannot open include file: 'config-win.h'。原因是源碼編譯需要 MySQL C 客戶端庫的開發檔案(headers/libs),而官方 Windows 安裝包預設不包含。最簡解法:使用預編譯 Wheel。
_mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory error: command 'cl.exe' failed with exit status 2
cp37 (3.7)、cp38 (3.8)、cp39 (3.9) 等win32 (32位) / win_amd64 (64位)mysqlclient‑1.4.6‑cp38‑cp38‑win_amd64.whlpip install PyMySQL # 代碼中透明替換 import pymysql pymysql.install_as_MySQLdb() import MySQLdb # 實際走 PyMySQL
優點:零依賴、跨平台、支援 eventlet/gevent 協程。缺點:高併發效能略低於 mysqlclient。
C:\mysql-connector-c。SET MYSQL_DIR=C:\mysql-connector-c SET INCLUDE=%MYSQL_DIR%\include;%INCLUDE% SET LIB=%MYSQL_DIR%\lib;%LIB%
pip install mysqlclient。但極易踩版本不匹配、Runtime Library 不一致(MT/MD)等坑,強烈不推薦。
python -c "import MySQLdb; print(MySQLdb.__version__)"
結語:Windows 下 Python C 擴充套件安裝首選預編譯 Wheel。mysqlclient 官方不再提供 Windows 二進制,Gohlke 頁面是社區公認標準源。若專案允許,直接改用 PyMySQL 省去編譯煩惱,生產環境經 OpenStack、大量 Flask/Django 專案驗證穩定可靠。