はじめに
本書では、Ubuntu 22.04に、Pythonの環境をインストールする方法をまとめます。
※2023/03/20 これまでUbuntu 20.04で書いていましたが、Ubuntu 22.04で確認しました。
案件によってPythonのバージョンが違うこともあるため、複数のバージョンをインストールして、alternativesで切り替えられるようにします。
また、Pythonインストール後には、venvで、アプリケーション等で使用する環境を作成することとします。
本書では、Python 3.8がもともと入っているため、3.6、3.7、3.9、更に、古いアプリを動かすために2.7もインストールすることを想定します。
インストールした中で、最新の3.9を有効にし、「newest」という環境をvenvで作成する手順をまとめます。
インストール手順
aptパッケージを更新する
sudo apt update
sudo apt upgrade -y
(パッケージ管理でpipを使う場合) pipインストール
下記手順ではpipがインストールされていないので、インストールします。
sudo apt install -y python3-pip
インストールしたらバージョンを確認します。
pip3 -V
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)
のように、エラーなどにならず、バージョンが表示されれば成功です。
リポジトリ追加
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
For nightly builds, see ppa:deadsnakes/nightly https://launchpad.net/~deadsnakes/+archive/ubuntu/nightly
More info: https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa
Press [ENTER] to continue or Ctrl-c to cancel adding it.
と表示されたらEnter
キーを押します。
apt update
sudo apt update
インストール可能なPythonのバージョンを確認
sudo apt list python3.*
python3.10-dbg/jammy-updates,jammy-security 3.10.6-1~22.04.2 amd64
python3.10-dev/jammy-updates,jammy-security,now 3.10.6-1~22.04.2 amd64 [installed,automatic]
python3.10-doc/jammy-updates,jammy-security 3.10.6-1~22.04.2 all
python3.10-examples/jammy-updates,jammy-security 3.10.6-1~22.04.2 all
python3.10-full/jammy-updates,jammy-security 3.10.6-1~22.04.2 amd64
python3.10-minimal/jammy-updates,jammy-security,now 3.10.6-1~22.04.2 amd64 [installed,automatic]
python3.10-nopie/jammy-updates,jammy-security 3.10.6-1~22.04.2 amd64
python3.10-venv/jammy-updates,jammy-security 3.10.6-1~22.04.2 amd64
python3.10/jammy-updates,jammy-security,now 3.10.6-1~22.04.2 amd64 [installed,automatic]
のように、インストール可能なPython3.xのaptパッケージが表示されますので、インストールするバージョンを決定します。
Python 各バージョンインストール
(例)Python 3.9が最新で、2.7、3.6、3.7をインストールする場合
sudo apt install -y python3.9 python3.9-venv
sudo apt install -y python3.7 python3.7-venv
sudo apt install -y python3.6 python3.6-venv
sudo apt install -y python2.7 python2.7-venv
※venvで仮想環境を分けるため、pythonX.X-venv
もインストールしています。
※pipでmysqlclientなどをインストールして、ビルドが必要になる場合、エラーになるケースがあります。その場合は、pythonX.X-dev
もインストールしてみてください。
alternativesでバージョン切り替え
定義
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 130
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 120
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 110
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 10
切り替え方法
Priorityを選択して切り替える方法
sudo update-alternatives --config python
There are 5 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/python3.9 130 auto mode
1 /usr/bin/python2.7 10 manual mode
2 /usr/bin/python3.6 100 manual mode
3 /usr/bin/python3.7 110 manual mode
4 /usr/bin/python3.8 120 manual mode
5 /usr/bin/python3.9 130 manual mode
Press <enter> to keep the current choice[*], or type selection number:
のように表示されるので、Selection
の番号を入れてEnter
キーを押すと、そのバージョンが有効になります。
※上記はPython 3.9が有効になっている状態です。
python -V
Python 3.9.6
のように、選択したバージョンになっていればOKです。
コマンドで直接設定する方法
3.9を有効にする場合:
sudo update-alternatives --set python /usr/bin/python3.9
python -V
Python 3.9.6
のように、選択したバージョンになっていればOKです。
venv (Python 3.x以降)
※ここでは、Python 3.9にnewest
という環境を作る手順をまとめます。
Pythonのバージョンを選択
sudo update-alternatives --config python
Python3.9のバージョンをSelection
の番号で指定します。
venv定義のディレクトリ作成
mkdir -p ~/venv/python3.9
環境を作成
ここでは、ホームディレクトリ以下全体で使用するnewest
という環境名を定義します。
cd ~/venv/python3.9/
次に、venv環境を作成します。
python -m venv newest
作成した環境を有効化
source ~/venv/python3.9/newest/bin/activate
※プロンプトの左端に(newest)
のように環境名が表示されれば、正しく参照されています。
(パッケージ管理でpipを使う場合) pip更新
python -m pip install --upgrade pip
(パッケージ管理でpipを使う場合) pipパッケージインストール
利用したいパッケージをインストールします。
python -m pip install {パッケージ名}