web-dev-qa-db-ja.com

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

これは、以前に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であり、エラーなしでlddsであり、関連性はないと思います。

ただし、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の問題ですか?誰でも改善方法を提案できますか? (元に戻す古い状態はありません。)

1
JonBrave

さて、これは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をまったく信用していません。

1
JonBrave