2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Python】グラフ描画のためにmatplotlibを使おうとしたら「this application failed to start because it could not find or load the qt platform plugin "windows"」というエラーが出た話

Last updated at Posted at 2020-04-22

※個人的な備忘録としてメモしました。
 何か間違ってたりしたら指摘してくださると幸いです。

問題

test_graph1(関数をグラフ描画するプログラム).py
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 500)
y = np.sin(x)

plt.figure()
plt.plot(x, y)
plt.show()

上記を実行すると

This application failed to start because it could not find or load the Qt platform plugin "windows"
in "".

Reinstalling the application may fix this problem.

というエラーメッセージが出てグラフ描画が出来ない状態に陥った。

環境

Windows 10 Home
Python 3.7.7
Visual Studio Code 1.44.2
Anaconda 4.8.3

解決方法

結論から書くと、QtとSIPとPyQt5をインストールすると解決しました。

Qtのオープンソースをこちらからインストールし、
下記をコマンドプロンプト等のコンソールで実行します。

$ pip install SIP
$ pip install PyQt5

WARNING: You are using pip version 19.2.3, however version 20.0.2 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command.

もし上記のようなWARNINGが出たら下記を実行します。

$ python -m pip install --upgrade pip

これで正しくPyQt5がインストールされ、
再度test_graph1(関数をグラフ描画するプログラム).pyを実行するとグラフが表示されます。
Figure_1.png
以上、Qtのdllが正しくインストールされておらず起こったエラーでした。
(尚Anaconda環境の方はpipコマンドではなくcondaコマンドでインストールする事を推奨します。)

解決に至るまで試した事

上記で解決できなくても、ここに書いてある事が解決のヒントになるかも。

その1

エラーメッセージにReinstalling the application may fix this problem.
と書いてあったのでAnacondaを試しにインストールし直してみましたが解決しませんでした。

###その2
その後google先生に質問したところ、この記事が引っ掛かりました。

[Pythonで機械学習の勉強始めたら「could not find or load the Qt platform plugin windows」でつまった]
(https://qiita.com/sukoppu1102/items/f5c00b520da0fa5d2ff3)

この記事によれば環境変数が正しく設定されていればこのエラーは出ないという事でしたが、
環境変数を正しく設定しても解決しませんでした。

###その3
[【Python】ツールを作ろうとしたらエラーが出たのでAnaconda+Pycharmで環境を再構築した話]
(https://helicobacterpylori.hatenablog.com/entry/2018/11/03/130000)

とりあえず必要なdllをexeと同じフォルダに入れることで解決しました。
\platforms をexeの入ったフォルダの/dist以下にコピーする。
C:\Users{YOUR_USERNAME}\Anaconda2\lib\site-packages\PyQt5
内の libEGL.dll を/dist以下にコピーする。

という記載があり、PyQt5の中身を見に行ったところ
そもそも libEGL.dll が存在していませんでした。
PyQt5が正しくインストール出来てないのでは?という事に気づき、
グラフ描画に必要なQt、PyQt5、SIPをそれぞれインストールしました。
実際、その時PyQt5の中身を見たところ穴ぼこ状態でした。

注意事項とその他

また、PyQt5自体のインストールが上手くいったとしても

from PyQt5.QtWidget import QWidget, QApplication

という風にPyQt5.QtWidgetを使用する場合は
Anacondaを用いて環境構築している方に関しては
ImportErrorNo Name ’QtWidgets' in module 'PyQt5'等の
エラーメッセージが出る可能性が高いです。
その場合はこちらの記事に書いてある解決方法を試してみると有効です。
今回はQtWidgetsを利用したグラフ描画ではない為
本編には含めませんでしたが、Anacondaを使っている方は必見です。

自分の場合は、上記の手順を実行したら更にエラーが出ました...
無題2.png
あなたの使ってるPythonのバージョンと対応してないよという文だったので
最終的に仮想環境のPythonバージョンをダウングレードしました。

無題.png
その後パッケージのビルドを確認すると、このように表示されました。
どうやったらダウングレード以外で解決出来るか判明したら
また記事を投稿しようかな~と思ってます。
(OSの情報がビルドにはみ出てるのはご愛嬌)

Qt、PyQt5、SIPのインストール詳細

PyQt5とpython3によるGUIプログラミング[0]
解決方法に記載されているインストールはこちらを参考にしました。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?