Моя система: 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
Найдите драйвер 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-разрядная) может быть одной из вероятных проблем.
PATH
в свойствах системы и перезагрузить Windows?