Найти - Пользователи
Полная версия: Подключение к БД с помощью PyQt5.
Начало » GUI » Подключение к БД с помощью PyQt5.
1 2
Korinn
Второй день пытаюсь подключится к 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
Использую Windows 10 x64, PyQt 5.9, Python 3.6.1, MySql 5.7.18,
Пытался гуглить, но тщетно: применение найденных ответов не дало никого результата.
old_monty
1. Открываемая БД, конечно, должна уже существовать.
2. Перед созданием соединения с БД надо обязательно создать объект приложения:
 from PyQt5 import QtWidgets, QtSql
import sys
app = QtWidgets.QApplication(sys.argv)
# (и дальше уже все, как у вас)
Korinn
У меня такой блок кода в конце файла:
 if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    win = LogIn()
    win.show()
    sys.exit(app.exec_())
Но я все равно сделал как вы сказали и ничего не изменилось.
old_monty
Рискну предположить, может, вместо ‘QMYSQL’ надо указать ‘QMYSQL3’?
Если и это не поможет, тогда уже не знаю.
Shaman
libmysql.dll по пути поиска? Там ещё сами плагины должны лежать не абы где.
Korinn
Shaman
libmysql.dll
Находится в папке с установленной базой, в папке с питоном такого файла нет.
Shaman
по пути поиска
Как это понимать?
Shaman
плагины должны лежать не абы где.
Если вы имеете ввиду плагины qsqlite.dll, qsqlmysql.dll, qsqlodbc.dll, qsqlpsql.dll, то они у меня находятся в C:\Python\Lib\site-packages\PyQt5\Qt\plugins\sqldrivers
Shaman
Korinn
Как это понимать?
То есть находится в таком месте, в котором система может её найти и загрузить.
Korinn
Если вы имеете ввиду плагины qsqlite.dll, qsqlmysql.dll, qsqlodbc.dll, qsqlpsql.dll, то они у меня находятся в C:\Python\Lib\site-packages\PyQt5\Qt\plugins\sqldrivers
Да, их самых. Я уже не помню деталей, там то ли специфическая переменная окружения должна на их каталог указывать, то ли они должны лежать в специфически поименованном каталоге рядом с программкой.
Korinn
В переменные среды в переменную PATH внес следующие значения:
C:\Program Files\MySQL\MySQL Server 5.7\lib (место, где находится libmysql.dll),
C:\Python\Lib\site-packages\PyQt5\Qt\plugins\sqldrivers.
Ошибка так и осталась.
Korinn
Ну что же вы, ребята, неужели ни у кого больше нет идей?
old_monty
Korinn
Ну что же вы, ребята, неужели ни у кого больше нет идей?
Вот еще идея. Попробуйте пока подключиться к MySQL из обычного скрипта на Python (не использующего PyQt5 и QtSql). Это получается?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB