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

PyQt5连接PostgreSQL时驱动加载失败问题求助

解决PyQt5连接PostgreSQL时的「Driver not loaded」错误

嘿,我刚学PyQt5的时候也碰到过一模一样的问题,别慌,这个错误基本都是驱动加载环节出了问题,咱们一步步来排查解决:

第一步:先确认环境位数匹配

首先得保证你的Python36、PyQt5、PostgreSQL三者的位数完全一致——要么全是64位,要么全是32位。比如你装的是64位的Python36,那PostgreSQL也得装64位版本,不然驱动根本没法兼容。

第二步:把PostgreSQL的bin目录加到环境变量里

Qt的PostgreSQL驱动(qsqlpsql.dll)依赖PostgreSQL自带的libpq.dll文件,要是系统找不到这个文件,驱动就会加载失败。你需要把PostgreSQL安装目录下的bin文件夹路径添加到系统的PATH环境变量里:

  • 找到你的PostgreSQL安装路径,比如默认是C:\Program Files\PostgreSQL\14\bin(14是版本号,换成你实际安装的版本)
  • 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」,在系统变量的PATH里添加这个路径
  • 重启你的Python编辑器或者命令行窗口,让环境变量生效

第三步:检查PyQt5的驱动文件是否存在

你可以去Python的site-packages目录里找PyQt5的驱动文件夹,路径大概是:你的Python安装目录\Lib\site-packages\PyQt5\Qt\plugins\sqldrivers,看看里面有没有qsqlpsql.dll这个文件。

  • 如果没有的话,先卸载当前的PyQt5,再用pip重新安装:pip uninstall pyqt5然后pip install pyqt5,一般最新的PyQt5包会包含常用的数据库驱动
  • 要是还是没有,你可以去Qt官方下载对应版本的Qt安装包(要和你的PyQt5使用的Qt版本匹配,比如PyQt5.15对应Qt5.15),安装后在Qt的安装目录里找到sqldrivers文件夹下的qsqlpsql.dll,复制到PyQt5的sqldrivers目录里

第四步:改进测试代码,更准确排查问题

你原来的代码只是初始化了驱动,还没尝试连接数据库,补充连接参数再测试能更清晰地定位问题:

from PyQt5 import QtSql

# 初始化PostgreSQL驱动
db = QtSql.QSqlDatabase.addDatabase("QPSQL")
# 设置连接参数(换成你自己的数据库信息)
db.setHostName("localhost")
db.setDatabaseName("test_db")  # 你的数据库名
db.setUserName("postgres")     # 你的用户名
db.setPassword("123456")       # 你的密码
db.setPort(5432)               # PostgreSQL默认端口

# 尝试打开连接
if db.open():
    print("数据库连接成功啦!")
else:
    print(f"连接失败:{db.lastError().text()}")

按照这几步来,基本就能解决驱动加载的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:04:19