在 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 问题?任何人都可以建议如何补救?(我没有要恢复的旧状态。)
好吧,这原来是
pip3
/ PyCharm问题:apt-get install python3-pyqt5
。apt-get install libqt5sql5-mysql
以前安装过,/usr/lib/x86_64-linux-gnu/qt5/plugins/sqldrivers/libqsqlmysql.so
一切正常。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
如果它可以简单地创建错误安装而没有任何消息,那么这种经历让我完全不信任。