当前位置:   article > 正文

[PyQt5]PyQt5连接MYSQL时显示Driver not loaded解决方案_python qoci driver not load

python qoci driver not load

在第一次用PyQt5的 QSqlDatabase.addDatabase 连接mysql的时候,可能会出现Driver not loaded的情况,如下:

  1. from PyQt5.QtSql import QSqlQuery, QSqlDatabase
  2. from PyQt5.QtWidgets import QApplication
  3. import sys
  4. app = QApplication(sys.argv)
  5. try:
  6. db = QSqlDatabase.addDatabase('QMYSQL')
  7. db.setHostName(ip)
  8. db.setPort(3306)
  9. db.setDatabaseName('cat')
  10. db.setUserName('root')
  11. db.setPassword('password')
  12. if db.open():
  13. print("打开了")
  14. else:
  15. print(db.lastError().text())

不出所料,连接失败。如果连接成功,恭喜你,直接叉掉就好。

2.查询支持的数据库驱动
利用下述代码查询目前所支持的数据库驱动

from PyQt5.QtSql import QSqlDatabase
print(QSqlDatabase.drivers())
 ['QSQLITE', 'QODBC', 'QODBC3', 'QPSQL', 'QPSQL7']

输出结果无 'QMYSQL', 'QMYSQL3'

说明缺少libmysql.dll 文件首先这个问题是肯定缺少DLL导致,有人说F:\Program Files\MySQL\MySQL Server 8.0\lib去找到这个DLL后,将libmysql.dll 复制到F:\anaconda\envs\pytorch\Lib\site-packages\PyQt5\Qt\bin,其实这种方法不正确哦,我们需要到 

https://github.com/thecodemonkey86/qt_mysql_driver/releases

找到对应pyqt5版本文件,比如我的pyqt5==5.13.2 mysql==8.0.32版本可以下

 

之后将dll复制到 F:\anaconda\envs\pytorch\Lib\site-packages\PyQt5\Qt\bin,而且libssl-1_1-x64.dll和libcrypto-1_1-x64.dll都要复制才行,提示覆盖可以选择跳过。

 

 

注意:python的版本如果是32位的,那就必须要找32位的libmysql文件,不然待会进行了第二步也会报Driver not loaded错误。

通过以下代码查看版本信息
from PyQt5.QtCore import QT_VERSION_STR
from PyQt5.Qt import PYQT_VERSION_STR

print('Qt 版本:', QT_VERSION_STR)
print('PyQt 版本:', PYQT_VERSION_STR)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/843441?site
推荐阅读
相关标签
  

闽ICP备14008679号