WSL UbuntuでPythonグラフィクス
◆WSLでグラフィクス表現できるのか
WSL UbuntuはCLIターミナルでの操作だが,GUIツールなどのグラフィクスウィンドウ表示ができる.
ただしOS等の条件があり,以下の通り.
Win11 + WSL2 + Ubuntu
これだと特に設定なしでも可能.
※ちなみに,大学PCのネイティブUbuntuは,なにもせずに日本語もグラフィクスも表示可能.
フォント名("MS Pゴシック"等)を変更する必要すらない(フォントの読み替えをしているらしい)
試しにx11-appsをインストールした上で,"oclock"コマンドや"xeyes"コマンドを実行してみよう.
$ apt install x11-apps -y
$ oclock
$ xeyes
https://gyazo.com/51102632b4c094af476df99d94e83bd8https://gyazo.com/432e28e0ea58d07bef5e2a7225527611
これらは立派な「X Window System クライアント」だ.これらのツールが表示されれば,pythonで生成されるウィンドウや画像も表示可能になる.
これらが表示されれば,あなたのWSL Ubuntuでグラフィック表示はできる.
★注意★
とりあえず,
$ sudo apt update ; sudo apt upgrade
だけはやっておこう.
◆pythonのtkinterモジュール
pythonでよく使われるのがTkというグラフィックツールを使った"tkinter"というモジュール.
WSL Ubuntuのpython3には入っていないので,"python3-tk"というパッケージをインストールする.
$ sudo apt install python3-tk
◆UbuntuにIPA日本語フォントをインストール
Ubuntuのターミナルでは日本語表示はできるが,グラフィックツールできるフォント(TrueType Font)ではない.
Windowsだとpythonプログラム中で
などとWindows標準フォントを指定できる.
Ubuntuではこの"MS Pゴシック"等に代わるフォントをインストールする必要がある.でないと豆腐が表示される.
ここでは非常にポピュラーなフリーフォント「IPAフォント」をインストールしよう.
$ sudo apt install -y fonts-ipafont
ただし,これだけではプログラムに記入するべきフォント名がわかりにくいので,フォントリストを表示させるツール,"fontconfig"を追加する.
$ sudo apt install -y fontconfig
それで,"fc-list"コマンドを実行すると,フォント一覧が出てくる.
code:fc-listコマンド
$ fc-list
/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf: DejaVu Serif:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book
/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: DejaVu Sans:style=Book
/usr/share/fonts/opentype/ipafont-mincho/ipam.ttf: IPAMincho,IPA明朝:style=Regular
/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf: DejaVu Sans:style=Bold
/usr/share/fonts/opentype/ipafont-gothic/ipagp.ttf: IPAPGothic,IPA Pゴシック:style=Regular
/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf: DejaVu Sans Mono:style=Bold
/usr/share/fonts/opentype/ipafont-mincho/ipamp.ttf: IPAPMincho,IPA P明朝:style=Regular
/usr/share/fonts/opentype/ipafont-gothic/ipag.ttf: IPAGothic,IPAゴシック:style=Regular
/usr/share/fonts/truetype/fonts-japanese-mincho.ttf: IPAMincho,IPA明朝:style=Regular
/usr/share/fonts/truetype/fonts-japanese-gothic.ttf: IPAGothic,IPAゴシック:style=Regular
/usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf: DejaVu Serif:style=Book
$
このリストの行の右側,"IPAPMincho,IPA P明朝" がフォント名で,"IPAPMincho" か,"IPA P明朝"のどちらかを指定する.
◆このままでもいいかも
上のインストールによって,標準フォントとしてIPAが認識されるようで,プログラムのフォント指定を外しても,
https://gyazo.com/ebeae6c5ae230a2687fda8baebefe178
と,日本語が表示される!(ゴシックがデフォルトらしい)びっくり.さらに,フォント指定を明示せずにサイズ指定もできる.
root.option_add("*font", 22)
https://gyazo.com/6d0f6638c069288f5533652b2b73dbef
◆フォントを明示したい時
これでも全然OKだが,デフォルトからフォントを変更したい時には,pythonプログラムをエディタで開いて,フォントを明示的に指示する.
→ 実行したらオッケー!
https://gyazo.com/144d4fe4be69a65826c4629b5a0002bd
以上.