Skip to content

AWS Linux 2023で新しいバージョンのPythonを使う方法

問題:AWS Linux 2023のPythonが古いバージョンだった

Python 3.12で開発したサーバーアプリケーションをAWSにデプロイするため、EC2インスタンスでAWS Linux 2023を選択しました。しかし、プリインストールされているPythonのバージョンを確認すると、3.9.23でした。

bash
[ec2-user@ip-10-0-0-222 ~]$ python3 --version
Python 3.9.23

開発環境の3.12とはバージョンが大きく異なるため、互換性の問題が発生する可能性があります。

なぜAWS Linux 2023のPythonバージョンは固定されているのか

AWS Linux 2023では、Python 3.9がOSのコアコンポーネントとしてプリインストールされています。このシステムPythonは単なるユーティリティではなく、OS全体の安定性と機能性を支える重要な要素です。

特に重要なのは、パッケージマネージャーであるdnfがこのシステムPython 3.9に厳密に依存していることです。そのため、システムPythonのバージョンを変更することはできません。

解決策:Python 3.12を別途インストールする

AWSでは、システムPython 3.9とは独立して、新しいバージョンのPythonをRPMパッケージとして提供しています。これらはAWSによってテストされており、OSとの互換性が保証されています。

1. 利用可能なPython 3.12パッケージを確認

bash
sudo dnf search python3.12

2. Python 3.12をインストール

bash
sudo dnf install python3.12 -y

3. pipもインストール

bash
sudo dnf install python3.12-pip -y

4. インストール確認

bash
python3.12 --version

5. 仮想環境を作成

bash
python3.12 -m venv venv

6. 仮想環境をアクティベート

bash
source venv/bin/activate

7. 必要なパッケージをインストール

bash
pip3.12 install -r requirements.txt

これで、システムPythonに影響を与えることなく、Python 3.12を使用した開発環境が構築できました。python3.12コマンドを使用することで、開発環境と同じバージョンでアプリケーションを実行できます。