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
コマンドを使用することで、開発環境と同じバージョンでアプリケーションを実行できます。