Python のプロジェクトに取り組むときは、プロジェクトごとに独立した依存関係を持たせる のが基本です。本記事では、Python 公式が標準で提供する venv を使って仮想環境を作り、出入りし、必要なライブラリを導入する手順を扱います。
仮想環境が必要な理由
Python は OS 全体で共有される「グローバル環境」を持っています。ここに直接ライブラリを入れると、次のような問題が起きます。
- プロジェクト A は pandas 2.0、プロジェクト B は pandas 1.5 を使いたい場合に共存できない
- 試しに入れたパッケージが OS 標準の Python に残り続け、何が必要で何が不要か分からなくなる
- 別のマシンで再現するときに「自分の環境にだけある依存」を見落とす
仮想環境は、プロジェクトのフォルダ内に 独立した Python 実行環境とライブラリ群 を作ることで、これらをまとめて解決します。
前提
- Python 3.11 以上がインストール済みであること(#2-1「Python のインストール (Windows 編)」 / #2-2「Python のインストール (macOS 編)」)
- ターミナル(Windows なら PowerShell / コマンドプロンプト、macOS なら Terminal)を開けること
venv は Python に標準で同梱されているため、別途インストールは不要です。
仮想環境を作る
プロジェクト用のフォルダに移動して、次のコマンドを実行します。
cd ~/projects/pykabu # プロジェクトのフォルダへ移動python -m venv .venv # .venv という名前で仮想環境を作成ここでは仮想環境の名前を .venv にしました。venv でも env でも構いませんが、.venv はエディタ・ツールが自動認識するデフォルトに近く、推奨されます。
実行後、プロジェクトフォルダ内に .venv/ ディレクトリが作られます。中には Python 本体のコピーやライブラリ用フォルダが入っています。
仮想環境を「有効化」する
仮想環境は、有効化(activate)するとそのターミナルセッションで使われるようになります。
| OS / シェル | 有効化コマンド |
|---|---|
| macOS / Linux (bash, zsh) | source .venv/bin/activate |
| Windows (PowerShell) | .venv\Scripts\Activate.ps1 |
| Windows (コマンドプロンプト) | .venv\Scripts\activate.bat |
有効化に成功すると、プロンプトの先頭に (.venv) が付きます。
(.venv) $ which python/Users/yourname/projects/pykabu/.venv/bin/pythonwhich python(Windows なら where python)で、グローバルではなく .venv/bin/python が選ばれていることを確認できます。
必要なライブラリを入れる
有効化された状態で pip を使うと、ライブラリは仮想環境内に入ります。
(.venv) $ pip install pandas matplotlib requestsインストール先は .venv/lib/python3.x/site-packages/ 以下になります。グローバル環境は汚れません。
依存関係を記録する
他のマシン・他の人が同じ環境を再現できるよう、依存関係を requirements.txt に書き出します。
(.venv) $ pip freeze > requirements.txt中身は次のようになります(バージョンは例)。
matplotlib==3.10.3numpy==2.2.6pandas==2.3.3python-dateutil==2.9.0.post0pytz==2025.3requests==2.32.5別の環境で再現するときは、同じく仮想環境を作って pip install -r requirements.txt を実行すれば、同じバージョン構成になります。
仮想環境を「無効化」する
作業が終わって元の状態に戻したい場合は、次のコマンドを使います。
(.venv) $ deactivateプロンプトから (.venv) が消え、Python はグローバル環境のものに戻ります。
仮想環境を消したいとき
不要になったら、.venv ディレクトリをそのまま削除すれば終わりです。
rm -rf .venv # macOS / Linux# Windows (PowerShell)Remove-Item -Recurse -Force .venvレジストリや設定ファイルへの書き込みは行われていないため、ディレクトリ削除だけで完全にクリーンになります。
生成AI へのプロンプト例
新しいプロジェクトで仮想環境を作る作業を毎回手で書くのは手間です。生成AI に依頼する場合の例を示します。
新しい Python プロジェクトを始めます。次の準備を行うシェルコマンドを順番に提示してください。- プロジェクトフォルダ ~/projects/pykabu を作成- .venv 名で venv を作成- 有効化コマンドを macOS / Windows それぞれ提示- pandas / requests / matplotlib をインストール- requirements.txt を生成コメントは日本語で、コードブロックを分けて提示してください。このようにゴールと制約を明示すると、生成AI の出力が安定します(詳細は#7-2「データ分析のためのプロンプト設計」)。
よくあるつまずき
| 症状 | 対処 |
|---|---|
(.venv) が出ない | 有効化コマンドのパスや実行権限を確認。シェルが zsh / bash か PowerShell かで違う |
pip install でグローバルに入ってしまう | 有効化を忘れている。which python で確認 |
Activate.ps1 の実行が拒否される(Windows) | Set-ExecutionPolicy -Scope CurrentUser RemoteSigned を実行してから再試行 |
.venv を Git に上げてしまった | .gitignore に .venv/ を追加し、git rm -r --cached .venv で除外 |
まとめ
- プロジェクトごとに
.venvを作る習慣を付けると、依存衝突に悩まなくなる pip freeze > requirements.txtで再現性を担保する- 不要になったら
.venvディレクトリを消すだけで撤去できる