【Python】ubuntu環境でpython3のバージョンを3.8.10-->3.10に更新する際のメモ(Aptを利用してインストール)
現在のバージョンの確認
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
参考ウェブサイト
Discussion