PyQt5 и MySQL. Driver not loaded

Изучаю PyQt5 и MySQL. При попытке соединения с базой данных MySQL получаю сообщение:"Driver not loaded".

Код:

from PyQt5 import QtWidgets, QtSql
import sys

app = QtWidgets.QApplication(sys.argv)

#Открываем БД MySQL
db = QtSql.QSqlDatabase.addDatabase("QMYSQL")
db.setPort(3306)
db.setHostName("localhost")
db.setDatabaseName("mydb")
db.setUserName("root")
db.setPassword("*******")
db.open()
print(db.lastError().text())
print(db.drivers())
db.close()

Output:

Driver not loaded Driver not loaded
['QSQLITE', 'QODBC', 'QODBC3', 'QPSQL', 'QPSQL7']
Process finished with exit code 0

Система:

Windows 7 64x, Python 3.8.3, PyQt5 v5.15.4

Что было сделано:

  1. Прописал в PATH:

C:\MySQL\bin; C:\MySQL\lib;

C:\ProgramData\Anaconda3\Lib\site-packages\PyQt5\Qt\plugins\sqldrivers;

C:\ProgramData\Anaconda3\Lib\site-packages\PyQt5\Qt5\plugins\sqldrivers;

C:\Users\cash\PycharmProjects\QtProject\venv\Lib\site-packages\PyQt5\Qt5\plugins\sqldrivers;

  1. Добавил в папку с проектом ibmysql.dll, libmysql.lib, mysqlclient.lib.

  2. Пробовал добавлять в папку:

C:\Users\cash\PycharmProjects\QtProject\venv\Lib\site-packages\PyQt5\Qt5\plugins\sqldrivers; 

файл qsqlmysql.dll, тогда код работает но вывод следующий:

Process finished with exit code 0

Если же убрать QMYSQL в строке

db = QtSql.QSqlDatabase.addDatabase("")

То вывод

Driver not loaded Driver not loaded
['QSQLITE', 'QMYSQL', 'QMYSQL3', 'QODBC', 'QODBC3', 'QPSQL', 'QPSQL7']
Process finished with exit code 0

Если QMSQL поменять на QSQLITE всё работает, но мне нужно, что бы PyQt5 соединялся с MySQL.
Заранее благодарю сообщество за помощь.


Ответы (0 шт):