Ubuntu 26.04 では、Python は OS や管理ツールの土台として使われます。管理スクリプト、Kubernetes API 操作、Docker 操作、SSH 接続、自動化ツールの補助など、サーバー管理の裏側で Python が必要になる場面は少なくありません。
この記事では、Ubuntu 26.04 でサーバー管理に使う Python 実行環境を確認し、必要な apt パッケージを入れる考え方を整理します。重要なのは、OS が使う system Python と、アプリケーションごとの Python 環境を混ぜないことです。
Ubuntu 26.04 で Python を扱う時の前提
Ubuntu の python3 は、単なる開発用言語ではなく、OS や各種管理ツールからも利用される実行環境です。そのため、/usr/bin/python3 の周辺を不用意に壊すと、パッケージ管理や管理ツールに影響する可能性があります。
| 領域 | 考え方 |
|---|---|
| system Python | Ubuntu が提供する python3。OS と apt パッケージの前提として扱う |
| apt の Python パッケージ | 管理用途で必要な Python module を OS 管理下で入れる |
| pip | system Python に直接入れすぎない。用途を分けて扱う |
| venv | アプリケーションや検証用の依存関係を分離する |
| 管理スクリプト | OS 側の Python と外部依存の境界を意識する |
現在の Python を確認する
まず、Ubuntu 26.04 上の Python と pip の状態を確認します。python ではなく、基本的には python3 を明示して扱います。
python3 --version
which python3
python3 -m pip --versionpip が入っていない場合でも、いきなり外部から導入するのではなく、まず apt で管理する方針に寄せた方が安定します。Ubuntu の OS 管理下にある Python と、ユーザーが自由に入れる Python package を混ぜすぎないためです。
管理用途の Python パッケージを apt で入れる
サーバー管理で使う Python module は、可能であれば apt パッケージとして導入します。これにより、OS のパッケージ管理、セキュリティ更新、依存関係の扱いを Ubuntu 側に寄せられます。
たとえば、Kubernetes、OpenShift、Docker、SSH 接続を Python から扱う場合は、次のようなパッケージを使います。
sudo apt update
sudo apt install -y python3-kubernetes python3-openshift python3-docker python3-paramiko| パッケージ | 用途 |
|---|---|
python3-kubernetes | Kubernetes API を Python から扱う |
python3-openshift | OpenShift / Kubernetes 系の Python module を利用する |
python3-docker | Docker API を Python から扱う |
python3-paramiko | SSH 接続やリモート操作を Python から扱う |
導入後に import できるか確認する
パッケージを入れたら、Python から import できるかを確認します。これはアプリケーションの動作確認ではなく、OS 側の Python 環境に必要な module が見えているかを確認する作業です。
python3 - <<'PY'
import kubernetes
import openshift
import docker
import paramiko
print("python modules are available")
PYここで import に失敗する場合は、パッケージが入っていない、別の Python を見ている、仮想環境の中にいる、などを疑います。which python3 と python3 -c で見ている実行環境を確認します。
pip を system Python に直接入れすぎない
Python でよくあるトラブルは、system Python に対して pip install を直接繰り返し、OS 管理の Python と手動導入した package が混ざることです。短期的には動いても、更新時や別ツール導入時に依存関係が分かりにくくなります。
Ubuntu のサーバー管理では、OS 共通で使うものは apt、アプリケーションや検証ごとの依存関係は venv、と分けて考える方が扱いやすいです。
アプリケーション用は venv で分ける
アプリケーションや検証用の Python package を入れる場合は、venv を使って分離します。これにより、OS 側の Python 環境を汚さず、用途ごとに依存関係を閉じ込められます。
sudo apt install -y python3-venv
python3 -m venv ~/venv/example
. ~/venv/example/bin/activate
python --version
pip --version
deactivatevenv はアプリケーションごと、検証ごとに作るものです。管理用の共通 Python module と、アプリケーションが必要とする module を同じ場所に詰め込まないことが重要です。
管理スクリプトで使う時の注意
サーバー管理で Python スクリプトを書く場合は、どの Python で動かすのかを明確にします。cron、systemd timer、手動実行、Ansible や他の構成管理ツールからの実行では、環境変数や PATH が異なることがあります。
| 確認項目 | 見るポイント |
|---|---|
| 実行 Python | /usr/bin/python3 なのか venv 内の Python なのか |
| 依存関係 | apt 管理の module か、venv 内の package か |
| 実行ユーザー | root、管理ユーザー、アプリケーションユーザーを混ぜない |
| 実行経路 | 手動、systemd、cron、構成管理ツールで PATH が変わる |
| ログ | 失敗時に標準出力、標準エラー、journal を追えるようにする |
まとめ
Ubuntu 26.04 の Python 環境は、サーバー管理の土台として扱う必要があります。python3 は OS 側の実行環境でもあるため、system Python を不用意に変更したり、pip で依存関係を直接積み上げたりすると、後から状態が分かりにくくなります。
管理用途で必要な module は apt パッケージとして導入し、アプリケーションや検証用の依存関係は venv で分離する。この切り分けをしておくと、Kubernetes、Docker、SSH 操作などを Python から扱う場合でも、OS 管理とアプリケーション管理の境界を保ちやすくなります。
Ubuntu Server の運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。



