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
これは、以前にnotを実行した場合に発生することです。
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日で、PyQt5ではなくQt5であり、エラーなしでldd
sであり、関連性はないと思います。
ただし、2番目の日付は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
私はそれが問題ですか? Qt5ではなく、PyQt5の問題ですか?誰でも改善方法を提案できますか? (元に戻す古い状態はありません。)
さて、これは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
をまったく信用していません。