1

我的系统:Windows 10 Pro 16299、Qt、PyQt 5.11.2、Python 3.6、PostgreSql 10

我尝试在我的 gui 中使用 QTableView/QSqlTableModel 来处理 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")

依赖行者截图

4

1 回答 1

0

找到 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\10\bin\
C:\Program Files\PostgreSQL\10\lib\

dll 的版本不兼容(64 位与 32 位)可能是可能的问题之一。

于 2018-07-04T19:03:10.327 回答