#python #mysql #pyqt5
#python #mysql #pyqt5
Вопрос:
У меня возникает эта проблема, когда я пытаюсь подключиться к локальной базе данных mysql с помощью метода QSqlDatabase.addDatabase().
Я знаю, что опубликовано несколько похожих вопросов, но они не предлагают четких решений, особенно поскольку большинство из них касается C , и они предположили, что мы можем использовать документацию Qt, чего я не могу
В частности, я хотел бы знать, каких файлов не хватает (.dll, .so, .lib)? где мне их взять? и куда мне их скопировать? в случае, если для Python не C
Это ошибка, которую я получаю при попытке запустить мой скрипт на Python:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
Я использую Windows 10, MySQL 8, Python 3.6, PyQt 5.9 и PyQt-tools 5.9 (я использую эту версию PyQt, потому что я также использую fbs, в руководстве fbs говорится, что он лучше работает с этой версией PyQt5 и Python)
Это полезное утверждение, которое я прочитал в stackoverflow, но оно предназначено для C : «»» Помните, что плагин qsqlmysql — это в основном интерфейс qt, который использует методы соединителя mysql-C. Но, к сожалению, этот соединитель не распространяется вместе с Qt, поэтому вы должны предоставить его самостоятельно. «»»
Итак, как я уже говорил ранее, важно знать, какие файлы отсутствуют (.dll, .so, .lib)? где мне их взять? и куда мне их скопировать?
Пожалуйста, дайте мне знать, если вам нужен мой скрипт, но он очень простой:
- Я пытаюсь подключиться, используя QSqlDatabase.addDatabase(‘QMYSQL’)
- Создайте экземпляр QSqlTableModel, который использует это подключение к БД и задает единственную таблицу этой базы данных.
- Отобразите эту единственную таблицу в QTableView.
Ответ №1:
Попробуйте использовать «QMYSQL3» как:
db= QSqlDatabase.addDatabase("QMYSQL3")
db.setHostName('host_name')
db.setUserName('user_name')
db.setDatabaseName('database')
db.setPassword('password')
ok = db.open()
if ok:
print('Success')
else:
print(db.lastError().text())
Если ваша проблема не решена, вы можете проверить, что ваш libmysql.dll файла нет в вашей папке с исполняемым файлом python, и если это так, скопируйте файл из python 3.x / lib /site-packages в вашу папку с исполняемым файлом python 3.xx. У меня это сработало.
Комментарии:
1. Большое вам спасибо, это сработало, скопировав файл в папку моей среды, где находится исполняемый файл python