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

PyQt5中QMYSQL驱动加载失败及编译插件遇qt-cmake报错求助

解决方案:PyQt5 QMYSQL驱动加载失败与编译问题

一、先解决「Driver not loaded」报错

核心排查点

  • 纠正文件混淆:你提到的qsqlite.dll是SQLite驱动,和MySQL无关,必须使用qmysql.dll。确保你放置的是对应MySQL的驱动文件。
  • 版本/位数完全匹配:qmysql.dll、libmysql.dll必须和你的PyQt5(对应Qt版本)、Python、MySQL版本保持一致,尤其是32/64位:
    • 运行python -c "from PyQt5.QtCore import QT_VERSION_STR; print(QT_VERSION_STR)"查看PyQt5绑定的Qt版本
    • libmysql.dll从MySQL安装目录的lib文件夹(或MySQL Connector/C包)提取,确保位数和Python一致
  • 路径验证:
    • qmysql.dll必须放在site-packages\PyQt5\Qt\plugins\sqldrivers(部分版本是Qt5而非Qt,以实际目录结构为准)
    • libmysql.dll除了Python根目录,还可以放到Windows的System32(64位)或SysWOW64(32位)目录,确保系统PATH能识别
  • 验证驱动是否被识别:运行以下代码查看可用驱动列表,确认QMYSQL是否存在:
from PyQt5.QtSql import QSqlDatabase
print(QSqlDatabase.drivers())
  • 查看具体错误:用以下代码获取更详细的加载失败原因,而非仅「Driver not loaded」:
from PyQt5.QtSql import QSqlDatabase, QSqlError

db = QSqlDatabase.addDatabase("QMYSQL")
if not db.isValid():
    print(db.lastError().text())

二、解决「qt-cmake不是内部或外部命令」问题

随PyQt5安装的Qt是精简运行版,不包含编译工具链(qt-cmake、qmake、Qt源码等),所以无法直接编译Qt插件。有两种解决方式:

方式1:使用预编译驱动(推荐,无需编译)

  1. 根据之前查到的Qt版本,下载对应版本、位数的预编译qmysql.dll(需匹配Qt版本和MySQL版本)
  2. 将下载的qmysql.dll(含调试版qmysqld.dll可选)放到PyQt5的sqldrivers目录
  3. 搭配对应版本的libmysql.dll放置到PATH可访问目录,重复第一部分的验证步骤

方式2:手动编译驱动(需完整Qt SDK)

  1. 安装完整Qt SDK:版本必须和PyQt5绑定的Qt版本完全一致(比如PyQt5用Qt 5.15.2,就安装Qt 5.15.2的完整SDK,安装时勾选「Qt源码」和对应编译器)
  2. 安装MySQL Connector/C(C语言连接器,提供编译所需的头文件和库)
  3. 打开Qt自带的命令提示符(比如「Qt 5.15.2 (MSVC 2019 64-bit)」),该提示符会自动配置Qt的环境变量,包含qt-cmake路径
  4. 进入Qt源码的sqldrivers/mysql目录(若安装时未勾选源码,需重新安装Qt并添加)
  5. 执行编译命令(替换为你的MySQL Connector/C路径):
qt-cmake -G "NMake Makefiles" -DMySQL_INCLUDE_DIR="C:\Program Files\MySQL\MySQL Connector C 6.1\include" -DMySQL_LIBRARY="C:\Program Files\MySQL\MySQL Connector C 6.1\lib\libmysql.lib" ..
nmake
nmake install
  1. 将编译生成的qmysql.dll复制到PyQt5的sqldrivers目录,搭配libmysql.dll完成配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:23:14