なぜ仮想環境が必要なのか
プロジェクトAがあるライブラリの旧版、プロジェクトBが新版を必要とすると、PC全体へ直接インストールした環境では衝突します。仮想環境は、プロジェクト専用のPythonとパッケージ置き場を用意します。
venvを作成して有効化する
プロジェクト用フォルダーへ移動し、標準の venv モジュールを実行します。環境名には慣例として .venv を使います。
python3 -m venv .venvsource .venv/bin/activate.venv\Scripts\Activate.ps1有効化後はプロンプトに (.venv) などと表示されます。終了時は deactivate を実行します。
pipでパッケージを管理する
仮想環境が有効になっていることを確認してから、python -m pip の形で実行すると、どのPythonへ導入するかが明確です。
python -m pip --version
python -m pip install requests
python -m pip show requests
python -m pip listインストール後は import requests のように利用できます。パッケージ名をタイプミスすると、名前の似た別パッケージを入れる危険があるため、公式ドキュメントで正確な名前を確認します。
必要なパッケージを記録する
別のPCでも同じ環境を作れるよう、依存関係をファイルへ記録します。
python -m pip freeze > requirements.txtpython -m pip install -r requirements.txtfreeze は間接的に導入されたものもすべて記録します。小さな学習プロジェクトでは便利ですが、実務ではpyproject.tomlや専用ツールなど、直接依存と固定版を分けて管理する方法も使われます。
最初のプロジェクト構成
my_project/
├── .venv/ # Gitへ登録しない
├── .gitignore
├── requirements.txt
├── app.py
└── tests/
└── test_app.py.venv/ は環境ごと作り直せるためGitへ登録しません。代わりに依存関係ファイルとソースコードを登録します。
.venv/
__pycache__/
*.pyc
.env安全に使うために
- 公開元、正確なパッケージ名、更新状況を確認する
- 不要なパッケージをむやみに追加しない
- 秘密鍵やAPIキーをrequirements.txtやコードへ書かない
- 依存関係の脆弱性情報と更新内容を確認する
- 更新前後にテストを実行する
既知の脆弱性を確認する
pip-auditは、使用している依存関係に既知の脆弱性が報告されていないか確認するツールです。pipの組み込みコマンドではないため、仮想環境へ別途インストールします。
python -m pip install pip-audit
python -m pip_audit
python -m pip_audit -r requirements.txt2行目は現在の環境、3行目はrequirements.txtに記録された依存関係を検査します。報告が出た場合は内容と互換性を確認し、更新後にテストしてください。検査結果が問題なしでも、パッケージの信頼性や設定上の安全性まで保証されるわけではありません。
仮想環境は安全性を自動で保証する仕組みではありません。依存を分離し、再現しやすくする道具です。信頼できるパッケージかを確認する責任は残ります。
