「Ubuntu 22.04に最新版Pythonをインストールしたい」
「LinuxにインストールされているPythonがよくわからない・・・」
このような場合には、この記事の内容が参考となります。
この記事では、Ubuntu 22.04 LTSへ最新版Pythonをインストールする方法を解説しています。
本記事の内容
- デフォルトでインストール済みのPythonは使うべからず
- 別途Pythonのインストール
- インストールしたPythonのパス
それでは、上記に沿って解説していきます。
デフォルトでインストール済みのPythonは使うべからず
Ubuntu 22.04 LTSでは、デフォルトで次のPythonがインストールされています。
$ python3 -V Python 3.10.4 $ which python3 /usr/bin/python3
このPythonの正体を追いかけます。
$ ls -l /usr/bin/python3 lrwxrwxrwx 1 root root 10 3月 25 21:41 /usr/bin/python3 -> python3.10 $ /usr/bin/python3.10 -V Python 3.10.4
実体は、「/usr/bin/python3.10」ということです。
このPythonは、基本的には開発で利用してはいけません。
理由は、開発で利用するモノではないからです。
では、何に利用されているのでしょうか?
それは、OSの機能を実現するために利用されています。
つまり、OSの一部だと言ってもよいでしょう。
だから、無暗にアップグレードをしてはいけません。
pipでパッケージをガンガンとインストールするのもやめましょう。
早い話、利用禁止のPythonということです。
以上、デフォルトでインストール済みのPythonは使うべからずを説明しました。
次は、別途Pythonのインストールを説明します。
別途Pythonのインストール
デフォルトでインストールされたPythonは利用禁止でした。
そこで、別途Pythonをインストールする必要があります。
そのための方法は、次の記事で説明しています。
基本的には、バージョンが異なるだけです。
それ以外は、同じ手順でインストールできます。
ダイジェストで最新バージョンであるPythonのインストールを説明します。
詳細は、上記の記事をご覧ください。
まず、ビルド環境の準備が必要です。
$ sudo apt update $ sudo apt install build-essential libbz2-dev libdb-dev \ libreadline-dev libffi-dev libgdbm-dev liblzma-dev \ libncursesw5-dev libsqlite3-dev libssl-dev \ zlib1g-dev uuid-dev tk-dev
次に、Pythonのソースをダウンロードします。
下記でソースのダウンロードリンクを確認。
https://pythonlinks.python.jp/ja/index.html
現時点では、Python 3.10.4が最新のソースとなります。
ダウンロードから、ビルドまで一気に実行。
$ wget https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tar.xz $ tar xJf Python-3.10.4.tar.xz $ cd Python-3.10.4 $ ./configure $ make $ sudo make install
以上、別途Pythonのインストールを説明しました。
最後に、インストールしたPythonのパスについて説明します。
インストールしたPythonのパス
別途インストールしたPythonのパスを確認します。
$ python3 -V Python 3.10.4 $ which python3 /usr/local/bin/python3 $ ls -l /usr/local/bin/python3 lrwxrwxrwx 1 root root 9 4月 25 16:56 /usr/local/bin/python3 -> python3.10 $ /usr/local/bin/python3.10 -V Python 3.10.4
デフォルトのPythonと別途インストールしたPythonを比較してみましょう。
パス(whichで確認) | 実体 | |
デフォルトでインストール済み | /usr/bin/python3 | /usr/bin/python3.10 |
別途インストール | /usr/local/bin/python3 | /usr/local/bin/python3.10 |
/usr/binと/usr/local/binの違いについての説明は、ここでは省きます。
これの説明をすると内容がブレてしまいます。
とにかく、ユーザーにとっては/usr/local/binの下にあるpython3が優先されるとだけ覚えてください。
そして、そのpython3は単なるシンボリックリンクに過ぎないということです。
実体は、リンク先のPythonとなります。
この仕組みを理解していれば、python3の中身を置き換えることが可能です。
そのことについては、別の記事でまとめます。
以上、インストールしたPythonのパスについて説明しました。