PostgreSql, QSqlDatabase: не удалось открыть базу данных

1

Моя система: Windows 10 Pro 16299, Qt, PyQt 5.11.2, Python 3.6, PostgreSql 10

Я попытался использовать QTableView/QSqlTableModel для моего gui для работы с данными 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

Изображение 174551

Теги:
pyqt5
pyqt
qsqldatabase

1 ответ

0
Лучший ответ

Найдите драйвер Postgres:

C:\Python\Python36\Lib\site-packages\PyQt5\Qt\plugins\sqldrivers\qsqlpsql.dll

где C:\Python\Python36 - ваш каталог установки Python.

Загрузите этот файл зависимым ходоком и проверьте, можно ли libpq.dll и все его зависимости.

Как правило, две папки Postgres должны быть установлены на системном пути:

C:\Program Files\PostgreSQL\10\bin\
C:\Program Files\PostgreSQL\10\lib\

Несовместимость версии dll (64-разрядная и 32-разрядная) может быть одной из вероятных проблем.

  • 0
    Я добавил C: \ Program Files \ PostgreSQL \ 10 \ bin \ и C: \ Program Files \ PostgreSQL \ 10 \ lib \ в переменную пути. Та же ошибка. Тем не менее, скриншот из «Dependeny Walker» (см. Выше) показывает, что чего-то не хватает. Как я могу это исправить?
  • 0
    Ну, зависимости выглядят довольно хорошо. Я бы сказал, что это должно бежать! Установить новый PATH в свойствах системы и перезагрузить Windows?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню