Windows10下Python3.9+PyQt5.15+MySQL8.1的QMYSQL驱动加载问题求解
解决Windows 10下Python3.9+PyQt5.15+MySQL的QMYSQL驱动加载问题
一、已验证兼容的版本组合
Python3.9(64位) + PyQt5.15.2(对应Qt5.15.x) + MySQL8.0.30(64位)是经过实测可以正常运行QMYSQL驱动的组合。你当前使用的MySQL8.1版本较新,PyQt5.15基于的Qt5.15对其兼容性不足,这大概率是驱动加载失败的核心原因。
二、明确缺失的文件与查找路径
你遇到的问题核心是两个关键文件的缺失或版本不匹配:
qsqlmysql.dll:PyQt5的QMYSQL驱动文件- 查找路径:Python安装目录下的PyQt5插件目录,例如你的路径:
C:\Users\bobse\AppData\Local\Programs\Python\Python39\Lib\site-packages\PyQt5\Qt5\plugins\sqldrivers - 如果该目录下没有这个文件,说明PyQt5安装时未包含QMYSQL驱动,需要重新安装带完整驱动的PyQt5,或从Qt官方安装包中提取对应Qt5.15版本的驱动文件。
- 查找路径:Python安装目录下的PyQt5插件目录,例如你的路径:
libmysql.dll:MySQL客户端动态库,是qsqlmysql.dll的依赖文件- 查找路径:
- 系统PATH中包含的MySQL bin目录(你的PATH里有
C:\Program Files\MySQL\MySQL Server 8.0\bin,里面有该文件,但版本是8.0) - 也可以放在PyQt5的
sqldrivers目录下,或你的Python脚本执行目录中
- 系统PATH中包含的MySQL bin目录(你的PATH里有
- 注意:PyQt5.15的驱动不兼容MySQL8.1版本的
libmysql.dll,必须使用MySQL8.0.x版本的文件。
- 查找路径:
三、具体解决步骤
确认驱动文件存在
前往上述sqldrivers目录,检查是否有qsqlmysql.dll和qsqlmysql.dll(调试版)。若缺失,可通过以下方式获取:- 重新安装PyQt5时指定完整驱动:
pip install pyqt5 --no-cache-dir(确保安装包包含驱动) - 从Qt官方下载Qt5.15.x的Windows安装包,选择对应64位版本,安装后在
Qt5.15.x\5.15.x\msvc2019_64\plugins\sqldrivers目录下提取qsqlmysql.dll。
- 重新安装PyQt5时指定完整驱动:
替换匹配版本的
libmysql.dll- 下载MySQL8.0.30的64位客户端包(无需完整安装服务器,仅提取
libmysql.dll即可) - 将该文件复制到以下任意位置:
- PyQt5的
sqldrivers目录 - 你的Python脚本所在目录
- 替换PATH中MySQL8.1目录下的同名文件(注意备份原文件)
- PyQt5的
- 下载MySQL8.0.30的64位客户端包(无需完整安装服务器,仅提取
验证驱动加载状态
运行以下代码查看可用SQL驱动:from PyQt5.QtSql import QSqlDatabase print(QSqlDatabase.drivers())若输出包含
QMYSQL,说明驱动已找到;若仍未出现,检查qsqlmysql.dll的依赖(可使用Dependency Walker工具查看缺失项,通常是VC运行库,需安装VS2019版本的VC Redistributable)。检查VC++运行库依赖
Qt5.15编译依赖VS2019的VC运行库,若系统未安装,会导致驱动无法加载。前往微软官网下载并安装**Microsoft Visual C Redistributable for Visual Studio 2019**(64位版本)。
内容的提问来源于stack exchange,提问作者user3763748
相关产品推荐
相关产品推荐

