PostgreSql、QSqlDatabase:无法打开数据库
PostgreSql, QSqlDatabase: Failed to open Database
我的系统:Windows10 Pro 16299,Qt,PyQt 5.11.2,Python3.6,PostgreSql 10
我尝试在我的 gui 中使用 QTableView/QSqlTableModel for 来处理 postgresql 数据。但是,我无法打开数据库。我收到错误消息“未加载驱动程序未加载驱动程序”。
重新安装Qt、PostgreSql、PyQt,问题未解决。我还尝试了“Dependency Walker”来查找丢失的 dll,但无法使用给定的信息。
你知道如何解决这个问题吗?
作为替代方案:是否可以将 QTableView/QSqlTableModel 与 psycopg2(而不是 QSqlDatabase)一起使用?
非常感谢您!
from PyQt5.QtSql import QSqlDatabase, QSqlQuery, QSqlTableModel
from PyQt5.QtWidgets import QTableView, QApplication
import sys
if __name__ == '__main__':
app = QApplication(sys.argv)
db = QSqlDatabase.addDatabase("QPSQL")
db.setHostName("localhost")
db.setPort(5432)
db.setDatabaseName("Test")
db.setUserName("postgres")
db.setPassword("xxxxx")
if (db.open() == False):
QMessageBox.critical(None, "Error", db.lastError().text())
else:
Print("Connected")
Dependency Walker 截图
找到 Postgres 驱动程序:
C:\Python\Python36\Lib\site-packages\PyQt5\Qt\plugins\sqldrivers\qsqlpsql.dll
其中 C:\Python\Python36
是您的 Python 安装目录。
使用 dependency walker 加载此文件并检查是否可以找到 libpq.dll
及其所有依赖项。
通常必须在系统路径上设置两个 Postgres 文件夹:
C:\Program Files\PostgreSQL\bin\
C:\Program Files\PostgreSQL\lib\
dll 的版本不兼容(64 位与 32 位)可能是可能的问题之一。
我的系统:Windows10 Pro 16299,Qt,PyQt 5.11.2,Python3.6,PostgreSql 10
我尝试在我的 gui 中使用 QTableView/QSqlTableModel for 来处理 postgresql 数据。但是,我无法打开数据库。我收到错误消息“未加载驱动程序未加载驱动程序”。
重新安装Qt、PostgreSql、PyQt,问题未解决。我还尝试了“Dependency Walker”来查找丢失的 dll,但无法使用给定的信息。
你知道如何解决这个问题吗?
作为替代方案:是否可以将 QTableView/QSqlTableModel 与 psycopg2(而不是 QSqlDatabase)一起使用?
非常感谢您!
from PyQt5.QtSql import QSqlDatabase, QSqlQuery, QSqlTableModel
from PyQt5.QtWidgets import QTableView, QApplication
import sys
if __name__ == '__main__':
app = QApplication(sys.argv)
db = QSqlDatabase.addDatabase("QPSQL")
db.setHostName("localhost")
db.setPort(5432)
db.setDatabaseName("Test")
db.setUserName("postgres")
db.setPassword("xxxxx")
if (db.open() == False):
QMessageBox.critical(None, "Error", db.lastError().text())
else:
Print("Connected")
Dependency Walker 截图
找到 Postgres 驱动程序:
C:\Python\Python36\Lib\site-packages\PyQt5\Qt\plugins\sqldrivers\qsqlpsql.dll
其中 C:\Python\Python36
是您的 Python 安装目录。
使用 dependency walker 加载此文件并检查是否可以找到 libpq.dll
及其所有依赖项。
通常必须在系统路径上设置两个 Postgres 文件夹:
C:\Program Files\PostgreSQL\bin\
C:\Program Files\PostgreSQL\lib\
dll 的版本不兼容(64 位与 32 位)可能是可能的问题之一。