🌕

【Python】ubuntu環境でpython3のバージョンを3.8.10-->3.10に更新する際のメモ(Aptを利用してインストール)

2024/09/17に公開

現在のバージョンの確認

Aptを利用してインストール

次のようなコマンドで必要なプログラムをインストールします。

$ sudo apt update
$ sudo apt install software-properties-common

次のコマンドでRepositoryを登録します。

$ sudo add-apt-repository ppa:deadsnakes/ppa

次のコマンドでPython 3.10をインストールします。

$ sudo apt install python3.10

次のコマンドで python 3.10がインストールされてパスを確認することができます。

$ which python3.10
/usr/bin/python3.10

$ python3.10 --version
Python 3.10.15

記事を書いた時点(2024/09/17)では、3.10.15がインストールされていました。

しかし、このままでは、python3コマンドでは依然と3.8.10が使用されています。

$ python3 --version
Python 3.8.10

AlternativesにPythonのバージョン管理

alternativesを使用すると、pythonのバージョンの変更を容易に行うことができます。

通常、python3のコマンドに、いろいろなバージョンを割り当てることができます。(今回の例だと、3.8.10と、3.10.15)

しかし、python3ではなく、pythonコマンドに3.10.15を割り当てるのに、alternativesを使用しました。(alternativesじゃなくてもよかったかも...)

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1
update-alternatives: using /usr/bin/python3.10 to provide /usr/bin/python (python) in auto mode

update-alternativesコマンドの--install以下は、
[symbolic link path] python [real path] number
です。

そして、複数登録した場合、以下のコマンドで、登録したPythonのバージョンを選択するメニューが出ます。(以下pythonコマンドにpython3.10を一つだけ登録しただけなので、選択メニューはでていません。)

$ sudo update-alternatives --config python
There is only one alternative in link group python (providing /usr/bin/python): /usr/bin/python3.10
Nothing to configure.

以下のように、pythonコマンドに3.10.15を割り当てることができました。

$ python --version
Python 3.10.15

余談ですが、以下の方法で、ls /usr/bin/のなかにあるPythonファイルを確認できます。

$ ls /usr/bin | grep python
python
python3
python3-config
python3.10
python3.8
python3.8-config
x86_64-linux-gnu-python3-config
x86_64-linux-gnu-python3.8-config

このなかで実行ファイルはpython, python3、python3.10、python3.8です。

pythonは、python3.10のシンボリックリンクです。
(正確にいうと、alternativesの中にあるpython3.10へのシンボリックリンク)

python3は、python3.8のシンボリックリンクです。

$ ls -la /usr/bin | grep python
lrwxrwxrwx  1 root   root           24 Sep  8 03:35 pdb3.10 -> ../lib/python3.10/pdb.py
lrwxrwxrwx  1 root   root           23 Nov 22  2023 pdb3.8 -> ../lib/python3.8/pdb.py
lrwxrwxrwx  1 root   root           31 Mar 13  2020 py3versions -> ../share/python3/py3versions.py
lrwxrwxrwx  1 root   root           24 Sep 17 17:37 python -> /etc/alternatives/python
lrwxrwxrwx  1 root   root            9 Mar 13  2020 python3 -> python3.8
lrwxrwxrwx  1 root   root           16 Mar 13  2020 python3-config -> python3.8-config
-rwxr-xr-x  1 root   root      5801848 Sep  8 03:35 python3.10
-rwxr-xr-x  1 root   root      5465880 Nov 22  2023 python3.8
lrwxrwxrwx  1 root   root           33 Nov 22  2023 python3.8-config -> x86_64-linux-gnu-python3.8-config
lrwxrwxrwx  1 root   root           33 Mar 13  2020 x86_64-linux-gnu-python3-config -> x86_64-linux-gnu-python3.8-config
-rwxr-xr-x  1 root   root         3241 Nov 22  2023 x86_64-linux-gnu-python3.8-config

参考ウェブサイト

https://codechacha.com/ja/ubuntu-install-python39/
https://codechacha.com/ja/change-python-version/

Discussion