1
1

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 1 year has passed since last update.

WSL2 Ubuntu22.04 で GUIを使用するpython開発環境を構築

Posted at

WSL2で、GUIへの出力もする開発作業をpythonで始める人向け。

WSL2セットアップ

省略。
MicrosoftStoreでUbuntu22.04をインストールし、Ubuntuを起動

Ubuntuにpythonをセットアップ

Ubuntu22.04ならばPython3.10がデフォルトでインストールされている。
ためしにHelloworldを実施

GUIを使用するための環境構築

Xserver(windows上で表示するためのアプリ)をWindowsに導入することで、WSL上で実行したGUIがwindowsに表示されるようにする。
以下のページを参考にした。
https://stackoverflow.com/questions/43397162/show-matplotlib-plots-and-other-gui-in-ubuntu-wsl1-wsl2

VcXsrvを導入/起動

VcXsrvはXserverの一種。ほかにもお気に入りのものがあればそちらを。
以下のサイトからダウンロードし、windowsにインストールする。
https://sourceforge.net/projects/vcxsrv/

C:\Program Files\VcXsrv\xlaunch.exe を起動する。
以下の選択肢を指定してFinish。(ほかはたぶんお好み)

Start no client
Disable access control

GUIが表示されるか確認

PythonでGUI画面を表示する処理を実行し、動作確認する。
他の方法でもよし。
以下、すべてubuntu側での操作

まずはpipが入っていなければインストール実施する。

$ sudo apt install python3-pip
<省略>

$ pip -V
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)

Tkinter(PythonでGUIを開発するためのライブラリ)を導入する。

sudo apt-get install python3-tk

Tkinterのバージョンを確認

$ python3
Python 3.10.6 (main, Mar 10 2023, 10:55:28) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
>>> tkinter.TkVersion
8.6

matplotlibをインストール

$ pip install matplotlib

環境変数を設定し、WSL2からVcXsrvに対して画面が出力されるようにする。

export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 export LIBGL_ALWAYS_INDIRECT=1

起動したら必ず設定されるように、bashrcに記載してもよい

$ vi ~/.bashrc

# 末尾に以下を登録して保存
# Show GUI to windows from WSL2
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 export LIBGL_ALWAYS_INDIRECT=1

GUIにHelloWolrdと表示するPythonスクリプトを作成。

test.py
from tkinter import *

root = Tk()
a = Label(root, text ="Hello World")
a.pack()

root.mainloop()

$ python3 test.pyでスクリプト実行。
以下のようなwindowが表示されたら成功。
image.png

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?