プロジェクトごとに独立した Python 環境を作る「仮想環境」。
作成・有効化・パッケージ管理の方法を丁寧に解説します。
Python の 仮想環境(virtual environment) とは、プロジェクトごとに独立した Python 環境を作る仕組みです。
例えば、プロジェクト A では Flask 2.0、プロジェクト B では Flask 3.0 を使いたい場合、グローバル環境には 1 つしかインストールできません。仮想環境を使えばプロジェクトごとに異なるバージョンを管理できます。
Python 3.3 以降は venv が標準で搭載されています。追加インストール不要で今すぐ使えます。
プロジェクトのフォルダ内で以下のコマンドを実行します。
# プロジェクトフォルダを作成して移動
mkdir my-project
cd my-project
# 仮想環境を作成(フォルダ名は "venv" が慣習)
python -m venv venv
# プロジェクトフォルダを作成して移動
mkdir my-project
cd my-project
# 仮想環境を作成
python3 -m venv venv
コマンドを実行すると venv/ フォルダが作成されます。このフォルダの中に独立した Python 環境が格納されます。
my-project/
├── venv/ ← 仮想環境フォルダ(中身は触らない)
│ ├── bin/ (Mac/Linux)または Scripts/ (Windows)
│ ├── lib/
│ └── pyvenv.cfg
├── main.py
└── requirements.txt
仮想環境を作成したら、必ず有効化してから使います。有効化しないと、グローバル環境にパッケージがインストールされてしまいます。
.\venv\Scripts\Activate.ps1
有効化されると、プロンプトの先頭に (venv) と表示されます。
(venv) PS C:\Users\user\my-project>
PowerShell の実行ポリシーによりエラーになる場合があります。以下のコマンドで解決できます(管理者権限不要)。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
deactivate
source venv/bin/activate
有効化されると、プロンプトの先頭に (venv) と表示されます。
(venv) user@mac my-project %
deactivate
ターミナルを閉じると仮想環境は無効になります。プロジェクトで作業するたびに activate コマンドを実行する習慣をつけましょう。
仮想環境を有効化した状態で pip install すると、その仮想環境だけにパッケージがインストールされます。
# 仮想環境を有効化してから実行
(venv) $ pip install flask
# インストール済みパッケージを確認
(venv) $ pip list
Package Version
---------- -------
Flask 3.0.3
Werkzeug 3.0.3
...
# pip 自体を最新版に更新しておくと安心
(venv) $ pip install --upgrade pip
requirements.txt は、インストールしたパッケージとバージョンを記録するファイルです。チームメンバーや本番環境でも同じ環境を再現できます。
# 現在の仮想環境のパッケージをファイルに書き出す
(venv) $ pip freeze > requirements.txt
# ファイルの中身を確認
(venv) $ cat requirements.txt
blinker==1.8.2
click==8.1.7
Flask==3.0.3
itsdangerous==2.2.0
Jinja2==3.1.4
MarkupSafe==2.1.5
Werkzeug==3.0.3
他の環境で同じパッケージ群をインストールするときは -r オプションを使います。
# 仮想環境を作成して有効化した後
(venv) $ pip install -r requirements.txt
新しいパッケージをインストールするたびに pip freeze > requirements.txt を実行して更新する習慣をつけましょう。
venv/ フォルダは Git で管理する必要がありません。.gitignore に追記しておきましょう。
# .gitignore ファイルに追記
venv/
__pycache__/
*.pyc
.env
instance/
venv/ は requirements.txt があれば誰でも再現できます。Git には requirements.txt だけをコミットすれば十分です。
仮想環境を活用して、クリーンな Python 開発を始めましょう。
Flask や Django を使ったコースもぜひチェックしてみてください!