Red Hat Training
A Red Hat training course is available for RHEL 8
第37章 Python の概要
Python は、オブジェクト指向、命令、機能、手順などの複数のプログラミングパラダイムをサポートする、高レベルのプログラミング言語です。Python は動的なセマンティクスを持ち、汎用プログラミングに使用できます。
Red Hat Enterprise Linux では、システムツール、データ分析用のツール、または Web アプリケーションを提供するパッケージなど、システムにインストールされている多くのパッケージが Python で記述されています。このパッケージを使用するには、python*
パッケージがインストールされている必要があります。
37.1. Python のバージョン
Python で互換性のない 2 つのバージョン (Python 2.x および Python 3.x) が広く使用されています。RHEL 8 は、以下のバージョンの Python を提供します。
表37.1 RHEL 8 の Python バージョン
バージョン | インストールするパッケージ | コマンドの例 | どのバージョン以降で利用可能か | ライフサイクル |
---|---|---|---|---|
Python 3.6 |
|
| RHEL 8.0 | 完全な RHEL 8 |
Python 2.7 |
|
| RHEL 8.0 | より短い |
Python 3.8 |
|
| RHEL 8.2 | より短い |
Python 3.9 |
|
| RHEL 8.4 | より短い |
サポート期間の詳細は、Red Hat Enterprise Linux のライフサイクル および Red Hat Enterprise Linux 8 アプリケーションストリームライフサイクル を参照してください。
Python の各バージョンは個別のモジュールで配布され、設計上、同じシステムに複数のモジュールを同時にインストールできます。
python38
モジュールおよび python39
モジュールには、python36
モジュールに提供されているシステムツール (RPM、DNF、SELinux など) へのバインディングと同じものを含めないでください。したがって、基本オペレーティングシステムとの最大の互換性またはバイナリー互換性が必要な場合は、python36
を使用してください。さまざまな Python モジュールの新しいバージョンと共にシステムバインディングが必要な特殊な例では、pip
を介して、Python の venv
または virtualenv
環境にインストールされたサードパーティーのアップストリーム Python モジュールと組み合わせて、python36
モジュールを使用します。
Python のインストール時、起動時、対話時にはバージョンを常に指定します。たとえば、パッケージ名またはコマンド名で、python
の代わりに python3
を使用します。Python 関連のすべてのコマンドにもバージョンを含む必要があります (例: pip3
、pip2
、pip3.8
、または pip3.9
など)。
RHEL 8 では、バージョンを指定しない python
コマンド (/usr/bin/python
) は、デフォルトで利用できません。これは、alternatives
コマンドを使用して設定できます。手順については、バージョンを指定しない Python の設定 を参照してください。alternatives
コマンドを使用して加えられた変更を除き、/usr/bin/python
への手動の変更は、更新時に上書きされる可能性があります。
システム管理者は、以下の理由で Python 3 を使用します。
- Python 3 は、Python プロジェクトの主な開発方向を表します。
- アップストリームコミュニティーでの Python 2 のサポートは 2020 年に終了しました。
- 人気のある Python ライブラリーは、アップストリームでの Python 2 サポートを終了します。
-
お客様の
Python 3
への移行を容易にするために、Red Hat Enterprise Linux 8 の Python 2 のライフサイクルが短くなっています。
開発者の場合、Python 2 と比較して Python 3 には以下の利点があります。
- Python 3 を使用すると、表現力があり、メンテナーンスが可能な正しいコードをより簡単に記述できます。
- Python 3 で書かれたコード寿命は長くなります。
-
Python 3 には、
asyncio
、f-strings、高度なアンパッキング、キーワードのみの引数、例外チェーンなどの新機能があります。
ただし、レガシーソフトウェアでは、/usr/bin/python
を Python 2 に設定する必要がある場合があります。この理由により、デフォルトの python
パッケージは Red Hat Enterprise Linux 8 で配布されず、バージョンを指定しない Python の設定 で説明されているように、/usr/bin/python
として使用する Python のバージョンを 2 または 3 から選択できます。
Red Hat Enterprise Linux 8 のシステムツールは、内部の platform-python
パッケージで提供される Python バージョン 3.6 を使用します。Red Hat は、代わりに python36
パッケージを使用することを推奨します。