最近使用PyQt5 SQL 连接PostgreSQL执行以下代码,发现读取不到驱动,折腾了2天,测试了网上许多方法,但是没有我想要的效果。
到目前已经解决了,所以大概总结一下过程。
import sys from PyQt5.QtWidgets import QApplication from PyQt5.QtSql import QSqlDatabase, QSqlTableModel, QSqlRecord def openDatabase(): db = QSqlDatabase.addDatabase('QPSQL') db.setHostName("localhost") db.setDatabaseName("postgres") db.setUserName("postgres") db.setPassword("1234") print( db.open()) if __name__ == "__main__": app = QApplication(sys.argv) openDatabase() sys.exit(app.exec_())
错误如下:
Python 版本 3.7
SQL版本 PostgreSQL 11
PyQt5版本
Qt5 Version Number is: 5.13.0
PyQt5 Version is: 5.13.0
Sip Version is: 5.0.0
解决方案:
添加数据库的路径到系统变量Path,然后重新电脑!
如:
D:PostgreSQL11lib
D:PostgreSQL11include
D:PostgreSQL11in
已解决:
总结:
刚开始我参照网上MYSQL的方式叫libpq.dll 放到QT5的相关文件夹中,但是没有成功。后来怀疑是数据库和Python 的32位与64位不兼容导致,
于是我重装了一个64位的数据库。但是还是提示没有驱动。直到添加路径到系统变量后才可以。最后我又安装了32位的数据库也成功连上了,也就
是说64位是兼容32位的。