WSL2(Ubuntu 22.04)でpython3.10以外を使えるようにする
4K4D、「WSL2+python3.10だと厳しそう。3.9だとワンチャンいけるかも?」ということで、alternativesできるようにします。
リポジトリの追加
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
python確認します。
$ sudo apt list python3.*
Listing... Done
python3.10-dbg/jammy-updates,jammy-security 3.10.12-1~22.04.3 amd64
python3.10-dev/jammy-updates,jammy-security,now 3.10.12-1~22.04.3 amd64 [installed,automatic]
python3.10-doc/jammy-updates,jammy-security 3.10.12-1~22.04.3 all
python3.10-examples/jammy-updates,jammy-security 3.10.12-1~22.04.3 all
python3.10-full/jammy-updates,jammy-security 3.10.12-1~22.04.3 amd64
python3.10-minimal/jammy-updates,jammy-security,now 3.10.12-1~22.04.3 amd64 [installed,automatic]
python3.10-nopie/jammy-updates,jammy-security 3.10.12-1~22.04.3 amd64
python3.10-venv/jammy-updates,jammy-security,now 3.10.12-1~22.04.3 amd64 [installed]
python3.10/jammy-updates,jammy-security,now 3.10.12-1~22.04.3 amd64 [installed,automatic]
(snip)
流れてしまうので、適当にgrepした結果がこちら。3.7から3.13まで揃っております。
python3.10/jammy-updates,jammy-security,now 3.10.12-1~22.04.3 amd64 [installed,automatic]
python3.11/jammy 3.11.7-1+jammy1 amd64
python3.12/jammy 3.12.1-1+jammy3 amd64
python3.13/jammy 3.13.0~a2-1+jammy1 amd64
python3.7/jammy 3.7.17-1+jammy1 amd64
python3.8/jammy 3.8.18-1+jammy1 amd64
python3.9/jammy 3.9.18-1+jammy1 amd64
Python3.9のインストール
諸事情でpython3.9をインストールします。
3点セットです。venv使うし、ビルドの時にdev必要だし。
sudo apt install -y python3.9 python3.9-venv python3.9-dev
alternativesの設定
alternativesで切り替えられるようにします。
定義の追加
3.10と3.9を追加します。
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 2
追加した定義から選択
3.9か3.10のいずれを使用するのか?を選択します。
sudo update-alternatives --config python
と叩くと、以下のようにどれを選びたいの?と聞かれるので、0か2を選択すると3.9で動くようになります。
There are 2 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/python3.9 2 auto mode
1 /usr/bin/python3.10 1 manual mode
2 /usr/bin/python3.9 2 manual mode
Press <enter> to keep the current choice[*], or type selection number:
/usr/binの下を覗いてみる
/usr/binの下を覗いてみます。
$ ls -l /usr/bin/python*
lrwxrwxrwx 1 root root 24 Dec 24 13:25 /usr/bin/python -> /etc/alternatives/python
lrwxrwxrwx 1 root root 10 Aug 18 2022 /usr/bin/python3 -> python3.10
lrwxrwxrwx 1 root root 17 Aug 18 2022 /usr/bin/python3-config -> python3.10-config
-rwxr-xr-x 1 root root 5904904 Nov 21 00:14 /usr/bin/python3.10
lrwxrwxrwx 1 root root 34 Nov 21 00:14 /usr/bin/python3.10-config -> x86_64-linux-gnu-python3.10-config
-rwxr-xr-x 1 root root 5294896 Aug 25 22:20 /usr/bin/python3.9
lrwxrwxrwx 1 root root 33 Aug 25 22:20 /usr/bin/python3.9-config -> x86_64-linux-gnu-python3.9-config
pythonと叩くと、alternativesで指定されたpythonコマンドが実行されます。
python3だと3.10が動きます。
こんな感じです。
$ python -V
Python 3.9.18
$ python3 -V
Python 3.10.12
$
3.9が動くようにできました。