nano_exit

基礎的なことこそ、簡単な例が必要だと思うのです。

Windows 10にWSLでUbuntuを入れてもpython (matplotlib)で図が表示されなかった時の話

pyenvを使って、pythonおよびモジュールを管理出来るようになった。
koideforest.hatenadiary.com

そこで、matplotlibでとりあえず図が出るか確認したところ、

from matplotlib import pyplot as plt
plt.plot( range(2), range(2) )
plt.show()

何も出ず、うんともすんとも言わない。

参考にしたサイト:
[WSL] WindowsのLinuxでmatplotlibを使おうとしたらエラーになった話|Scratch book
Ubuntu+Pyenv+Python3の環境でmatplotlibのグラフ表示ができなかった時の対処 - Qiita
WSLでmatplotlibやgnuplotでプロットができない - Qiita
matplotlib - tkinterをpyenv上で使用できるようにしたい - スタック・オーバーフロー

X11が入っていないので、とりあえずxtermをaptで入れる。

sudo apt install xterm

.bashrcで環境変数を設定する

export DISPLAY=localhost:0.0

xtermを入れると、XmingとXLanchが自動で入る。
Xmingが立ち上がっている状態でないとGUIは動かないので、自動起動設定をしておく。
Windows側でXLanchを起動し、ほぼデフォルトのままの設定をして、最後の"Save configuration"でファイルを適当なところに保存する。
そのファイルを、「スタートアップ」フォルダに入れる。(「Windowsキー+r」で出て来たウィンドウに「shell:startup」と打つと出てくる。)

何もしないと、pyenv上ではtkinter(?)が使えないらしいので、一度pythonをアンインストールしてからtk-devパッケージを入れて、再度インストールする。

pyenv uninstall 3.7.3
sudo apt install tk-dev
pyenv install 3.7.3
pyenv global 3.7.3
pip install matplotlib

これで図が出力されるようになった。
これで一先ず安心と言ったところだろうか。