QSqlDatabase не может подключиться только при импорте модуля

У меня есть два модуля в моем проекте (с использованием 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).

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

import sys
import database
from PyQt5.QtWidgets import QApplication

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

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

Почему?

Благодарю вас!


person Martin Lavagnino    schedule 13.10.2018    source источник
comment
Возможный дубликат драйвер QPSQL не загружен Qt   -  person eyllanesc    schedule 14.10.2018
comment
Он также добавляет следующее: import os os.environ['QT_DEBUG_PLUGINS'] = "1" перед app = QApplication(sys.argv) и проверьте сообщение, которое появляется в консоли.   -  person eyllanesc    schedule 14.10.2018
comment
также добавляет путь к каталогу, в котором находится .dll, в переменные среды.   -  person eyllanesc    schedule 14.10.2018
comment
@eyllanesc спасибо!   -  person Martin Lavagnino    schedule 14.10.2018