Форум сайта python.su
Второй день пытаюсь подключится к MySql, но безрезультатно. При таком коде:
db = QtSql.QSqlDatabase.addDatabase('QMYSQL') db.setHostName('localhost') db.setUserName('root') db.setPassword('1234') db.setDatabaseName('test') db.open() print(db.lastError().text())
python gui.py QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7 Driver not loaded Driver not loaded
Отредактировано Korinn (Июль 4, 2017 20:03:38)
Офлайн
1. Открываемая БД, конечно, должна уже существовать.
2. Перед созданием соединения с БД надо обязательно создать объект приложения:
from PyQt5 import QtWidgets, QtSql import sys app = QtWidgets.QApplication(sys.argv) # (и дальше уже все, как у вас)
Отредактировано old_monty (Июль 4, 2017 20:59:27)
Офлайн
У меня такой блок кода в конце файла:
if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) win = LogIn() win.show() sys.exit(app.exec_())
Отредактировано Korinn (Июль 4, 2017 21:14:10)
Офлайн
Рискну предположить, может, вместо ‘QMYSQL’ надо указать ‘QMYSQL3’?
Если и это не поможет, тогда уже не знаю.
Офлайн
libmysql.dll по пути поиска? Там ещё сами плагины должны лежать не абы где.
Отредактировано Shaman (Июль 4, 2017 22:12:26)
Офлайн
ShamanНаходится в папке с установленной базой, в папке с питоном такого файла нет.
libmysql.dll
ShamanКак это понимать?
по пути поиска
ShamanЕсли вы имеете ввиду плагины qsqlite.dll, qsqlmysql.dll, qsqlodbc.dll, qsqlpsql.dll, то они у меня находятся в C:\Python\Lib\site-packages\PyQt5\Qt\plugins\sqldrivers
плагины должны лежать не абы где.
Отредактировано Korinn (Июль 4, 2017 22:25:23)
Офлайн
KorinnТо есть находится в таком месте, в котором система может её найти и загрузить.
Как это понимать?
KorinnДа, их самых. Я уже не помню деталей, там то ли специфическая переменная окружения должна на их каталог указывать, то ли они должны лежать в специфически поименованном каталоге рядом с программкой.
Если вы имеете ввиду плагины qsqlite.dll, qsqlmysql.dll, qsqlodbc.dll, qsqlpsql.dll, то они у меня находятся в C:\Python\Lib\site-packages\PyQt5\Qt\plugins\sqldrivers
Офлайн
В переменные среды в переменную PATH внес следующие значения:
C:\Program Files\MySQL\MySQL Server 5.7\lib (место, где находится libmysql.dll),
C:\Python\Lib\site-packages\PyQt5\Qt\plugins\sqldrivers.
Ошибка так и осталась.
Отредактировано Korinn (Июль 5, 2017 19:46:37)
Офлайн
Ну что же вы, ребята, неужели ни у кого больше нет идей?
Офлайн
KorinnВот еще идея. Попробуйте пока подключиться к MySQL из обычного скрипта на Python (не использующего PyQt5 и QtSql). Это получается?
Ну что же вы, ребята, неужели ни у кого больше нет идей?
Офлайн