第16章 動的プログラミング言語のインストールおよび使用


アプリケーションの開発と実行のために、Red Hat は Python、PHP、Tcl/Tk などのランタイム言語を提供しています。

16.1. Python の概要

Python は、オブジェクト指向、命令、機能、手順などの複数のプログラミングパラダイムをサポートする、高レベルのプログラミング言語です。Python は動的なセマンティクスを持ち、汎用プログラミングに使用できます。

Red Hat Enterprise Linux では、システムツール、データ分析用のツール、または Web アプリケーションを提供するパッケージなど、システムにインストールされている多くのパッケージが Python で記述されています。このパッケージを使用するには、python* パッケージがインストールされている必要があります。

16.1.1. Python のバージョン

Python で互換性のない 2 つのバージョン (Python 2.x および Python 3.x) が広く使用されています。RHEL 8 は、以下のバージョンの Python を提供します。

Expand
表16.1 RHEL 8 の Python バージョン
バージョンインストールするパッケージコマンドの例利用可能となったバージョンライフサイクル

Python 3.11

python3.11

python3.11pip3.11

RHEL 8.8

より短い

Python 3.12

python3.12

python3.12pip3.12

RHEL 8.10

より短い

サポート期間の詳細は、Red Hat Enterprise Linux のライフサイクル およびRed Hat Enterprise Linux Application Streams ライフサイクル を参照してください。

Python 3.11 と Python 3.12 は、python3.11 パッケージと python3.12 パッケージを含む、非モジュール式の RPM パッケージ群として配布されています。

同じ RHEL 8 システムに複数の Python バージョンを並行してインストールできます。

重要

Python をインストール、起動、またはその他の方法で操作する際には、必ず Python のバージョンを指定してください。たとえば、パッケージ名またはコマンド名で、python の代わりに python3 を使用します。Python 関連のコマンドには、すべてバージョンを含める必要があります。たとえば、pip3pip2pip3.11、または pip3.12 などです。

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 に設定する必要がある場合があります。このため、Red Hat Enterprise Linux 8 にはデフォルトの Python パッケージは同梱されていません。バージョン指定のない Python の設定 で説明されているように、/usr/bin/python として Python 2 または 3 のどちらを使用するかを選択できます。

重要

Red Hat Enterprise Linux 8 のシステムツールは、内部の platform-python パッケージで提供される Python バージョン 3.6 を使用します。このパッケージをお客様が直接使用することは意図されていません。python3.11 パッケージに含まれている python3.11 コマンドを使用してください。

platform-python パッケージは他のパッケージで必要となるため、RHEL 8 から削除しないでください。

16.1.2. Python のバージョン間の主な違い

RHEL 8 における Python 3.6、3.11、および 3.12 は、システムバインディングと仮想環境の作成方法の点で違いがあります。システムツールとの完全な互換性が必要な場合は、python36 モジュールを使用してください。Python 3.11 および 3.12 には、virtualenv ではなく venv を使用してください。

Python バインディング
python3.11 および python3.12 パッケージ群には、python36 モジュール用に提供されているシステムツール (RPM、DNF、SELinux など) へのバインディングは含まれていません。したがって、ベースとなるオペレーティングシステムとの最大の互換性、またはバイナリー互換性が必要な場合は、python36 を使用してください。さまざまな Python モジュールの新しいバージョンと共にシステムバインディングが必要な特殊な例では、pip を介して、Python の venv または virtualenv 環境にインストールされたサードパーティーのアップストリーム Python モジュールと組み合わせて、python36 モジュールを使用します。
Python 3.11 および Python 3.12 の仮想環境は、virtualenv ではなく venv を使用して作成する必要があります
python3-virtualenv パッケージによって提供される RHEL 8 のvirtualenv ユーティリティーは、Python 3.11 および Python 3.12 と互換性がありません。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 または Python 3.12 の仮想環境を作成するには、代わりに python3.11 -m venv または python3.12 -m venv コマンドを使用してください。これらのコマンドでは、標準ライブラリーの venv モジュールが使用されます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る