- Ubuntu 26.04 サーバー管理ガイド
- Ubuntu 26.04 APT リポジトリとパッケージ更新 – proxy と更新方針を管理する
- Ubuntu 26.04 共通環境の基本設定 – /etc/environment と proxy 変数を管理する
- Ubuntu 26.04 update-ca-certificates の基本設定 – 内部 CA 証明書を信頼する
- Ubuntu 26.04 サービス状態確認の基本 – systemctl で active / enabled / failed を見る
- Ubuntu 26.04 障害時の切り分け – OS / ネットワーク / サービスを層で見る
Ubuntu 26.04 で Python を使う場合、OS 付属の Python、APT で入れる Python パッケージ、仮想環境、pipx で入れる CLI ツールを分けて扱います。サーバー管理では、OS の Python を壊さず、用途ごとに実行環境を分けることが重要です。
この記事では、Python のバージョン確認、APT パッケージ、venv、pip、pipx、proxy / CA、systemd から実行する時の確認を扱います。
Python の状態を確認する
まず OS に入っている Python と、関連パッケージの状態を確認します。
python3 --version
python3 -c 'import sys; print(sys.executable); print(sys.version)'
dpkg -l 'python3*' | awk '/^ii/{print $2, $3}'基本パッケージを導入する
venv、pip、pipx、開発ヘッダーなど、サーバー管理で使う基本パッケージを APT で導入します。
sudo apt update
sudo apt install python3 python3-venv python3-pip pipx python3-dev build-essential
python3 --version
pipx --versionOS 付属 Python と pip を分ける
Ubuntu の Python は OS パッケージ管理と結びついています。システム領域へ pip で直接入れるのではなく、APT、仮想環境、pipx を使い分けます。
- OS が使う Python パッケージは APT で管理する。
- アプリケーションや管理スクリプトの依存は
venvに分ける。 - CLI ツールは
pipxで分ける。 - 理由なく
--break-system-packagesを使わない。
仮想環境を作成する
管理スクリプトや小さなツールの依存関係は、プロジェクトごとに venv へ分けます。
mkdir -p ~/work/python-example
cd ~/work/python-example
python3 -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip
python -m pip --versionrequirements.txt を使う
同じ環境を再作成できるように、依存パッケージをファイルで管理します。
tee requirements.txt >/dev/null <<'EOF'
requests
PyYAML
EOF
. .venv/bin/activate
python -m pip install -r requirements.txt
python -m pip freezepipx で CLI ツールを導入する
pipx は Python 製 CLI ツールを分離環境へ入れるために使います。ユーザー単位で入れるツールと、システム共通で使うツールを分けて考えます。
pipx ensurepath
pipx install httpie
pipx list
http --versionproxy 環境で確認する
proxy 環境では、APT と Python の取得経路が別になることがあります。環境変数と pip の設定を確認します。
printenv HTTP_PROXY
printenv HTTPS_PROXY
printenv NO_PROXY
python -m pip config list
python -m pip install --dry-run requests内部 CA を確認する
内部 proxy や内部 PyPI を使う場合は、OS が内部 CA を信頼している必要があります。Python だけでなく、OS の CA ストアも確認します。
python -c 'import ssl; print(ssl.get_default_verify_paths())'
python -c 'import urllib.request; print(urllib.request.urlopen("https://www.python.org/", timeout=10).status)'
update-ca-certificates --verbosesystemd から Python を実行する
Python スクリプトを systemd service から実行する場合は、仮想環境内の Python を明示します。環境変数や作業ディレクトリも unit 側で確認します。
systemctl cat example-python.service
systemctl show example-python.service -p ExecStart -p WorkingDirectory -p Environment
journalctl -u example-python.service -b --no-pagerスクリプトの実行権限を確認する
直接実行するスクリプトでは、shebang、実行権限、参照する Python のパスを確認します。
head -n 1 script.py
chmod 0755 script.py
./script.py
python3 script.pyパッケージ更新を確認する
APT パッケージと仮想環境内の Python パッケージは別に更新します。OS 側の更新とアプリケーション依存の更新を混ぜないようにします。
sudo apt update
apt list --upgradable | grep '^python3' || true
. .venv/bin/activate
python -m pip list --outdated確認項目
- OS 付属 Python に直接 pip で依存パッケージを入れていないか。
- 管理スクリプトごとに
venvを分けているか。 - CLI ツールを
pipxで管理しているか。 - proxy と内部 CA の影響を確認しているか。
- systemd service から実行する Python のパスが明確か。
- APT 更新と venv 内パッケージ更新を分けて確認しているか。
まとめ
Ubuntu 26.04 の Python 実行環境では、OS 付属 Python、APT パッケージ、venv、pipx を分けて管理します。サーバー管理で使う Python は、依存関係、proxy、CA、systemd からの実行パスまで確認しておくと、運用中の変更や障害調査がしやすくなります。
- Ubuntu 26.04 サーバー管理ガイド
- Ubuntu 26.04 APT リポジトリとパッケージ更新 – proxy と更新方針を管理する
- Ubuntu 26.04 共通環境の基本設定 – /etc/environment と proxy 変数を管理する
- Ubuntu 26.04 update-ca-certificates の基本設定 – 内部 CA 証明書を信頼する
- Ubuntu 26.04 サービス状態確認の基本 – systemctl で active / enabled / failed を見る
- Ubuntu 26.04 障害時の切り分け – OS / ネットワーク / サービスを層で見る

