Python

仮想環境とパッケージ

外部ライブラリをプロジェクトごとに分け、同じ環境を再現できるように管理しましょう。

01

なぜ仮想環境が必要なのか

プロジェクトAがあるライブラリの旧版、プロジェクトBが新版を必要とすると、PC全体へ直接インストールした環境では衝突します。仮想環境は、プロジェクト専用のPythonとパッケージ置き場を用意します。

プロジェクトAの環境プロジェクトBの環境依存関係を分離
仮想マシンとは別物 venvはOS全体を仮想化せず、利用するPython環境とパッケージを切り替える軽量な仕組みです。
02

venvを作成して有効化する

プロジェクト用フォルダーへ移動し、標準の venv モジュールを実行します。環境名には慣例として .venv を使います。

作成COMMAND
python3 -m venv .venv
macOS / Linuxで有効化COMMAND
source .venv/bin/activate
Windows PowerShellで有効化COMMAND
.venv\Scripts\Activate.ps1

有効化後はプロンプトに (.venv) などと表示されます。終了時は deactivate を実行します。

実行ポリシー PowerShellでスクリプト実行が拒否された場合は、組織やPCのセキュリティ方針を確認してください。設定を理由なく大きく緩めないようにします。
03

pipでパッケージを管理する

仮想環境が有効になっていることを確認してから、python -m pip の形で実行すると、どのPythonへ導入するかが明確です。

確認とインストールCOMMAND
python -m pip --version
python -m pip install requests
python -m pip show requests
python -m pip list

インストール後は import requests のように利用できます。パッケージ名をタイプミスすると、名前の似た別パッケージを入れる危険があるため、公式ドキュメントで正確な名前を確認します。

04

必要なパッケージを記録する

別のPCでも同じ環境を作れるよう、依存関係をファイルへ記録します。

現在の環境を記録COMMAND
python -m pip freeze > requirements.txt
記録からインストールCOMMAND
python -m pip install -r requirements.txt

freeze は間接的に導入されたものもすべて記録します。小さな学習プロジェクトでは便利ですが、実務ではpyproject.tomlや専用ツールなど、直接依存と固定版を分けて管理する方法も使われます。

05

最初のプロジェクト構成

フォルダー例TEXT
my_project/
├── .venv/              # Gitへ登録しない
├── .gitignore
├── requirements.txt
├── app.py
└── tests/
    └── test_app.py

.venv/ は環境ごと作り直せるためGitへ登録しません。代わりに依存関係ファイルとソースコードを登録します。

.gitignoreTEXT
.venv/
__pycache__/
*.pyc
.env
06

安全に使うために

確認すること
  • 公開元、正確なパッケージ名、更新状況を確認する
  • 不要なパッケージをむやみに追加しない
  • 秘密鍵やAPIキーをrequirements.txtやコードへ書かない
  • 依存関係の脆弱性情報と更新内容を確認する
  • 更新前後にテストを実行する

既知の脆弱性を確認する

pip-auditは、使用している依存関係に既知の脆弱性が報告されていないか確認するツールです。pipの組み込みコマンドではないため、仮想環境へ別途インストールします。

pip-auditの導入と実行COMMAND
python -m pip install pip-audit
python -m pip_audit
python -m pip_audit -r requirements.txt

2行目は現在の環境、3行目はrequirements.txtに記録された依存関係を検査します。報告が出た場合は内容と互換性を確認し、更新後にテストしてください。検査結果が問題なしでも、パッケージの信頼性や設定上の安全性まで保証されるわけではありません。

仮想環境は安全性を自動で保証する仕組みではありません。依存を分離し、再現しやすくする道具です。信頼できるパッケージかを確認する責任は残ります。