🤔
【Python】WSL2 の ubuntuで Matplotlibを使い、画像を表示できない... X Serverの設定の問題だった
背景
Matplotlibのimshow()を使って画像を表示するプログラムをつくっていたのですが、コマンドラインで実行した後に、いくらたっても画像は表示されませんでした。
最初は、imshow()や、plt.show()の使い方に問題があるのかと思い、いろいろと探っていたのですが、じつは、Windowsで画像を表示するX Serverの設定自体がおかしかったことが分かりました。
ここに気づくのに時間がかかってしまったので、反省...
結論:X Serverの設定がおかしかった
描画用の「X Server」はすでにインストール済みで、いままでも使用したことがあったので安心していたのですが、これが盲点でした。
「X Server」を立ち上げて、以下のサイトに載ってある流れのとおりに設定すると、Matplotlibのimshow()を使って画像を表示することができるようになりました。
おそらくですが、設定のなかの「Disable access control」にチェックが入っておらず、ubuntuからのアクセスを「X Server」が受け付けていなかったのが、描画ができない原因だったのだと思います。(いままでできていたのに、なんでだろう???)
そのほかのケース
ぼくの場合、すでにインストール済みだった「X Server」の設定を変えるだけで、画像の表示ができるようになりましたが、ほかにもWSL上でMatplotlibをつかった画像の描画ができない様々なケースがあるようです。
調べるなかで見つけた解決法を以下に張っておきます。
→そもそもの「X Server」のインストール
Discussion