QSqlDatabase сбой соединения только при импорте модуля - PullRequest
0 голосов
/ 14 октября 2018

У меня есть два модуля в моем проекте (используя PyCharm 2018).Структура каталогов:

> my_app (folder)
    > venv (folder)
    > database.py
    > my_app.py
    > libpq.dll

database.py создает соединение ...

from PyQt5.QtSql import QSqlDatabase

hostName = "localhost"
databaseName = "my_app"
port = 5432
userName = "my_app_admin"
password = "****"


# Connect to database
def connect():
    db = QSqlDatabase.addDatabase("QPSQL")
    db.setHostName(hostName)
    db.setDatabaseName(databaseName)
    db.setPort(port)
    db.setUserName(userName)
    db.setPassword(password)
    ok = db.open()
    print(db.lastError().text(), ok)


if __name__ == "__main__":
    import sys
    from PyQt5.QtWidgets import QApplication
    app = QApplication(sys.argv)
    connect()

Когда я запускаю этот модуль, соединение в порядке, а напечатанный текст - True (без ошибкииз lastError call).

Но когда я вызываю database.connect () из my_app.py ...

import sys
import database
from PyQt5.QtWidgets import QApplication

app = QApplication(sys.argv)
database.connect()

... соединение не устанавливается с ошибкой «Драйвер не загружен».

Почему?

Спасибо!

...