PyQt 5使用時qt.qpa.プラグインエラーの解決


PythonがPyQt 5ライブラリをバインドしてGUIプログラミングを行う際に発生する「qt.qpa.plugin:Coluld not find Qt platform plugin」「windows」「in」.次のエラーの解決方法について説明します.

注意事項
本明細書では、pyqt 5がインストールされていると仮定し、例えばpip install pyqt5 pyqt5-toolsである.

TL;DR


  • pythonの実行

  • pythonがインストールされているパスを確認するには、次のコマンドラインを入力します(venvが実行されている場合はvenvパスとして表示されます).
    import sys
    sys.executable

  • スクリプトへのコピーを開始する前の懸濁パス


  • PowerShellを管理者権限で実行

  • 次のコマンドラインを入力して環境変数を設定します.このとき、引用符のパスは、最初の3つのコピーされたパスの後に\Lib\site-packages\PyQt5\Qt\plugins\platformsと接続されます.(反スラッシュ)1つでも2つでもかまいません
    setx QT_QPA_PLATFORM_PLUGIN_PATH "C:\\Users\\---\\python\\venv\Lib\site-packages\PyQt5\Qt\plugins\platforms"

  • 再起動
  • の原因となる


    問題の原因は、エラー文に示すようにQt platform pluginのパスが見つからないためです.
    環境変数QT_QPA_PLATFORM_PLUGIN_PATHでプラグインの場所を検索すると、プラグインに何も設定されていないため、パスが見つからないというエラーが発生します.

    解決策


    私たちがインストールしたpyqt 5ライブラリのプラットフォームプロジェクトと組み合わせて使用すると、問題は解決されます.
    pipによってインストールされると、インストールされたコンテンツはpythonパスのLib\site-packages\に保存されます.
    pythonを実行し、次のコマンドを入力してpythonパスを表示できます.
    import sys
    sys.executable
    ここの経路はPythonです.exeという実行可能ファイルのパスなので、Scriptというフォルダの前のパス部分だけコピーします.

    次に、管理者権限でPowerShellを実行し、次のコマンドを入力して環境変数を設定します.
    setx QT_QPA_PLATFORM_PLUGIN_PATH "C:\\Users\\---\\python\\venv\Lib\site-packages\PyQt5\Qt\plugins\platforms"
    ここのC:\\Users\\---\\python\\venv部分は、前に確認したパスに変更する必要があります.
    前のパスを変更するには、後の\Lib\site-packages\PyQt5\Qt\plugins\platformsの部分を残すだけです.
    環境変数の設定が完了したら、環境変数を適用するために再起動してください.