基礎

Python仮想環境の作り方|venvでプロジェクトごとにパッケージ管理

Python 仮想環境 venv

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 / Linuxsource .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 に追加する