Red Hat Training
A Red Hat training course is available for RHEL 8
36.2. Python のバージョン間の主な違い
RHEL 8 に含まれる Python のバージョンは、さまざまな点で異なります。
Python バインディング
python38
モジュールと python39
モジュール、および python3.11
パッケージスイートには、python36
モジュールに提供されるシステムツール (RPM、DNF、SELinux など) と同じバインディングが含まれていません。したがって、基本オペレーティングシステムとの最大の互換性またはバイナリー互換性が必要な場合は、python36
を使用してください。さまざまな Python モジュールの新しいバージョンと共にシステムバインディングが必要な特殊な例では、pip
を介して、Python の venv
または virtualenv
環境にインストールされたサードパーティーのアップストリーム Python モジュールと組み合わせて、python36
モジュールを使用します。
Python 3.11 仮想環境は、virtualenv
ではなく venv
を使用して作成する必要があります
python3-virtualenv
パッケージによって提供される RHEL 8 の virtualenv
ユーティリティーは、Python 3.11 と互換性がありません。virtualenv
を使用して仮想環境を作成しようとすると、次のエラーメッセージが表示されて失敗します。
$ virtualenv -p python3.11 venv3.11
Running virtualenv with interpreter /usr/bin/python3.11
ERROR: Virtual environments created by virtualenv < 20 are not compatible with Python 3.11.
ERROR: Use python3.11 -m venv
instead.
Python 3.11 仮想環境を作成するには、代わりに python3.11 -m venv
コマンドを使用します。このコマンドは、標準ライブラリーの venv
モジュールを使用します。