Python仮想環境の作り方
venvでプロジェクトごとにパッケージ管理
Pythonの仮想環境を使えば、プロジェクトごとに異なるバージョンのパッケージをインストールでき、依存関係の競合を防げます。
この記事では、venvの基本操作からrequirements.txtによる共有まで解説します。
こんな人向けの記事です
- Pythonの仮想環境の必要性を理解したい
- venvの作成・有効化・無効化を知りたい
- requirements.txtでパッケージを管理したい
Step 1なぜ仮想環境が必要か
仮想環境なしで全プロジェクトにパッケージをインストールすると、以下の問題が起きます。
仮想環境を使わないとこうなる
プロジェクトAは Django 4.2 が必要、プロジェクトBは Django 5.0 が必要。仮想環境がないと、同じPythonに両方インストールできず、どちらかが動かなくなります。
グローバル環境
パッケージ競合
パッケージ競合
→
仮想環境
プロジェクトごとに独立
プロジェクトごとに独立
Step 2venvで仮想環境を作成する
venv はPython 3.3以降に標準搭載されている仮想環境ツールです。
ターミナル
# プロジェクトディレクトリに移動
cd my_project
# 仮想環境を作成(.venv というディレクトリが作られる)
python3 -m venv .venv
.venv という名前について
仮想環境のディレクトリ名は自由ですが、.venv が慣例です。ドット始まりなのでエディタのファイルツリーで目立たず、
.gitignore にも追加しやすいです。
Step 3仮想環境の有効化・無効化
| OS | 有効化コマンド |
|---|---|
| macOS / Linux | source .venv/bin/activate |
| Windows(cmd) | .venv\Scripts\activate.bat |
| Windows(PowerShell) | .venv\Scripts\Activate.ps1 |
ターミナル
# 有効化
source .venv/bin/activate
# プロンプトに (.venv) が表示される
(.venv) $ python --version
# 無効化
deactivate
Step 4パッケージのインストール
ターミナル
# 仮想環境が有効な状態で
pip install django
pip install requests==2.31.0
# インストール済みパッケージの確認
pip list
# パッケージの場所を確認(.venv内にある)
pip show django
Step 5requirements.txtで管理する
ターミナル
# 現在のパッケージ一覧をファイルに出力
pip freeze > requirements.txt
# 別の環境で同じパッケージをインストール
pip install -r requirements.txt
requirements.txt
django==5.2
requests==2.31.0
gunicorn==22.0.0
psycopg2-binary==2.9.9
.venv を Git にコミットしない
仮想環境ディレクトリはサイズが大きく、OS依存なのでGitに含めません。.gitignore に .venv/ を追加してください。
.gitignore
.venv/
__pycache__/
*.pyc
まとめ
python3 -m venv .venvで仮想環境を作成source .venv/bin/activateで有効化、deactivateで無効化pip freeze > requirements.txtでパッケージを記録pip install -r requirements.txtで環境を再現.venv/は.gitignoreに追加する