Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Подключение к БД с помощью PyQt5. [RSS Feed]

#1 Июль 4, 2017 20:03:22

Korinn
Зарегистрирован: 2017-05-16
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Подключение к БД с помощью PyQt5.

Второй день пытаюсь подключится к 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,
Пытался гуглить, но тщетно: применение найденных ответов не дало никого результата.

Отредактировано Korinn (Июль 4, 2017 20:03:38)

Офлайн

#2 Июль 4, 2017 20:53:14

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Подключение к БД с помощью PyQt5.

1. Открываемая БД, конечно, должна уже существовать.
2. Перед созданием соединения с БД надо обязательно создать объект приложения:

 from PyQt5 import QtWidgets, QtSql
import sys
app = QtWidgets.QApplication(sys.argv)
# (и дальше уже все, как у вас)

Отредактировано old_monty (Июль 4, 2017 20:59:27)

Офлайн

#3 Июль 4, 2017 21:13:58

Korinn
Зарегистрирован: 2017-05-16
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Подключение к БД с помощью PyQt5.

У меня такой блок кода в конце файла:

 if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    win = LogIn()
    win.show()
    sys.exit(app.exec_())
Но я все равно сделал как вы сказали и ничего не изменилось.

Отредактировано Korinn (Июль 4, 2017 21:14:10)

Офлайн

#4 Июль 4, 2017 21:25:31

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Подключение к БД с помощью PyQt5.

Рискну предположить, может, вместо ‘QMYSQL’ надо указать ‘QMYSQL3’?
Если и это не поможет, тогда уже не знаю.

Офлайн

#5 Июль 4, 2017 22:08:47

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Подключение к БД с помощью PyQt5.

libmysql.dll по пути поиска? Там ещё сами плагины должны лежать не абы где.

Отредактировано Shaman (Июль 4, 2017 22:12:26)

Офлайн

#6 Июль 4, 2017 22:22:23

Korinn
Зарегистрирован: 2017-05-16
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Подключение к БД с помощью PyQt5.

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)

Офлайн

#7 Июль 4, 2017 22:44:30

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Подключение к БД с помощью PyQt5.

Korinn
Как это понимать?
То есть находится в таком месте, в котором система может её найти и загрузить.
Korinn
Если вы имеете ввиду плагины qsqlite.dll, qsqlmysql.dll, qsqlodbc.dll, qsqlpsql.dll, то они у меня находятся в C:\Python\Lib\site-packages\PyQt5\Qt\plugins\sqldrivers
Да, их самых. Я уже не помню деталей, там то ли специфическая переменная окружения должна на их каталог указывать, то ли они должны лежать в специфически поименованном каталоге рядом с программкой.

Офлайн

#8 Июль 5, 2017 07:20:58

Korinn
Зарегистрирован: 2017-05-16
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Подключение к БД с помощью PyQt5.

В переменные среды в переменную 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)

Офлайн

#9 Июль 7, 2017 12:01:07

Korinn
Зарегистрирован: 2017-05-16
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Подключение к БД с помощью PyQt5.

Ну что же вы, ребята, неужели ни у кого больше нет идей?

Офлайн

#10 Июль 7, 2017 19:32:09

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Подключение к БД с помощью PyQt5.

Korinn
Ну что же вы, ребята, неужели ни у кого больше нет идей?
Вот еще идея. Попробуйте пока подключиться к MySQL из обычного скрипта на Python (не использующего PyQt5 и QtSql). Это получается?

Офлайн

  • Начало
  • » GUI
  • » Подключение к БД с помощью PyQt5.[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version