未找到 PyQt5 mysql 驱动程序

未找到 PyQt5 mysql 驱动程序

在 Ubuntu 17.04 下,我使用 PyQt5(使用 Qt5 5.8.0)和 mysql(5.7.18)开发了一个 Python 3 应用程序。最近一切顺利直到今天,我现在启动时得到:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7

如果你有不是以前做过:

apt-get install libqt5sql5-mysql

但我已经这样做了,并尝试卸载它并重新安装它,结果相同。

跑步locate libqsqlmysql让我明白:

/usr/lib/x86_64-linux-gnu/qt5/plugins/sqldrivers/libqsqlmysql.so
/usr/local/lib/python3.5/dist-packages/PyQt5/Qt/plugins/sqldrivers/libqsqlmysql.so

其中第一个的日期是 2017 年 2 月 9 日,我相信它是 Qt5 而不是 PyQt5,它ldd没有错误,而且我认为没有相关性。

但是,第二个日期是 2017 年 6 月 21 日,所以看起来是罪魁祸首。如果我输入:ldd /usr/local/lib/python3.5/dist-packages/PyQt5/Qt/plugins/sqldrivers/libqsqlmysql.so,在输出中我会注意到:

libmysqlclient.so.18 => not found
libssl.so.10 => not found
libcrypto.so.10 => not found

我说得对,这就是问题所在吗?所以这是 PyQt5 的问题,而不是 Qt5 的问题?有人能建议如何补救吗?(我没有可以恢复到的旧状态。)

答案1

好吧,这原来是一个pip3/PyCharm问题:

  • 我以前已经做过了apt-get install python3-pyqt5
  • 之前apt-get install libqt5sql5-mysql已经安装了/usr/lib/x86_64-linux-gnu/qt5/plugins/sqldrivers/libqsqlmysql.so,一切正常。
  • 然后 PyCharm 让我这么做apt-get install python3-pip(我很幸运我记得这一点),并着手做一些pip3 install pyqt5幕后工作。
  • 这已经创建了自己的/usr/local/lib/python3.5/dist-packages/PyQt5/Qt/plugins/sqldrivers/libqsqlmysql.so,并且从输出中可以看出ldd该区域处于不完整/不一致的状态。
  • pip3 uninstall pyqt5删除了它,并恢复到无错误的安装。

我以前曾设法避免使用任何pip3,成功地通过 安装了所有内容apt-get。 这次经历让我pip3完全不相信它是否可以简单地创建一个没有任何消息的错误安装。

相关内容