Python で開発をしていると、標準ライブラリだけでは足りず外部パッケージに頼る場面が頻繁にあります。そして、アプリケーションごとに「使いたいパッケージのバージョン」が違うこともよくある話です。
たとえば、
- アプリA:ライブラリの version 1.0 が必要
- アプリB:同じライブラリの version 2.0 を使いたい
こんな状況では、1つの Python 環境に両方のバージョンを共存させることはできません。どちらかをインストールすると、もう片方が動かなくなってしまう…という問題が起きます。
この衝突を避けるために使うのが 「仮想環境(virtual environment)」 です。
ちなみに、Pythonチュートリアルを読めばわかる人向けではなく、読んでいて頭が痛くなりそうになる人向けの要約した記事となっています。
目次
1. 仮想環境とは?
仮想環境は、特定の Python 本体と、そこにインストールしたパッケージ一式を切り離して管理できる“専用のPython空間”のことです。
アプリケーションごとにこの専用環境を作ることで、
- 他のアプリに影響を与えない
- ライブラリのバージョン違いも気にしない
- 必要なパッケージだけをインストールできる
といったメリットがあります。
プロジェクトフォルダ内に
.venv/
という隠しディレクトリとして作られ、そこで独立した Python が動きます。
2. 仮想環境の作成方法(venv)
Python には、仮想環境を作るためのツール venv が標準で付属しています。
環境の作成コマンド
python -m venv tutorial-env
このコマンドを実行すると、tutorial-env というフォルダが作られ、この中に
- Python本体
- 実行に必要なファイル
- パッケージを入れる場所
がセットされます。
3. 仮想環境の有効化(activate)
作っただけでは使われません。
「この環境を使うよ」と宣言する必要があります。
Windows
tutorial-env\Scripts\activate
Mac / Linux / Unix
source tutorial-env/bin/activate
有効化すると、シェルの先頭に環境名が出るようになります。
(tutorial-env) $
この状態で python と打てば、仮想環境の Python が実行されます。
4. 仮想環境の終了
deactivate
と入力すれば、元のシステムの Python に戻ります。
5. パッケージ管理(pip)
仮想環境ができたら、次は pip でパッケージを管理します。
pip は
- インストール
- アップデート
- アンインストール
- 一覧表示
などができます。
6. パッケージをインストールする
最新版をインストール
python -m pip install requests
バージョンを固定してインストール
python -m pip install requests==2.6.0
バージョン指定は
- 過去の仕様に依存している
- 互換性問題を避けたい
場合に非常に重要です。
7. すでに入っているパッケージをアップデート
python -m pip install --upgrade requests
このコマンドは、古いバージョンを自動でアンインストールし、最新版に入れ替えます。
8. パッケージをアンインストール
python -m pip uninstall requests
9. パッケージの情報を確認
python -m pip show requests
出力される情報には
- どこにインストールされているか
- 依存ライブラリ
- 作者
などが含まれます。
10. インストールされているパッケージ一覧
python -m pip list
11. 再現性のための requirements.txt
プロジェクトでよく使われるのが、パッケージ一覧をファイルに保存する方法 です。
保存
python -m pip freeze > requirements.txt
中身はこうなります:
requests==2.7.0
numpy==1.9.2
novas==3.1.1.3
他の人が同じ環境を再現するとき
python -m pip install -r requirements.txt
これだけで必要なものがすべて入ります。
チーム開発では必須です。
まとめ:なぜ仮想環境が必要なのか?
仮想環境を使う目的はシンプルです。
- プロジェクトごとにパッケージを独立管理できる
- バージョン衝突を防げる
- 環境を再現しやすい(requirements.txt)
- 余計なパッケージを入れずにすむ
- アプリが壊れない
Python の開発では、最初に仮想環境を作るのが常識レベルのベストプラクティスです。
補足:仮想環境のパスが通らないときの解決方法
仮想環境を作ったのに「python が実行できない」「pip が使えない」「activate が動かない」などのトラブルは、ほぼ “パス(PATH)問題” が原因です。
ここでは、よく起きるケースと解決方法を整理します。
1. 仮想環境を有効化していない
最も多い原因です。
仮想環境は activate を実行しない限り有効になりません。
Windows
tutorial-env\Scripts\activate
Mac / Linux
source tutorial-env/bin/activate
プロンプトの先頭に (tutorial-env) が付いていなければ「まだ有効化されていない」状態です。
2. activate スクリプトの場所を間違えている
フォルダ構成は以下が正解です:
tutorial-env/
├─ bin/ ← Mac / Linux
│ └─ activate
└─ Scripts/ ← Windows
└─ activate
特に Windows では、パスの区切りを \ にする必要があります。
3. パーミッション(実行権限)不足(Mac / Linux)
UNIX 系では、activate に実行権限がない場合があります。
chmod +x tutorial-env/bin/activate
で権限を付与すれば有効化できるようになります。
4. python のバージョンが一致していない
venv は「実行した Python のバージョン」で環境を作ります。
例:
python3.12 -m venv env
この場合、環境の中に入っている Python も 3.12 です。
もし PATH で呼び出されている python が別バージョンの場合、
実行時に混乱してパスエラーが起きることがあります。
5. パスが長すぎる(Windows で発生することがある)
Windows では、階層が深すぎると Python が正常に扱えない場合があります。
例:
C:\Users\AAA\Desktop\project\dev\first\test\sample\more\env\Scripts\
解決策はシンプル:
- プロジェクトフォルダを浅い階層に置く
例:C:\project\env
6. PATH が汚染されて別の Python に奪われている
Anaconda・pyenv・古い Python など複数が共存していると、
予期せぬ Python が先に呼ばれることがあります。
対策
- 仮想環境を確実に有効化する
which python(Mac/Linux)where python(Windows)
を実行して、呼ばれているパスを確認
例:
(tutorial-env) $ where python
C:\path\to\tutorial-env\Scripts\python.exe ←これならOK
C:\Program Files\Python311\python.exe ←これだとNG
もしシステム Python が優先されていたら、
activate の位置を見直しましょう。
7. activate がセキュリティ設定でブロックされている(Windows)
PowerShell のセキュリティ設定によっては
スクリプトが実行できないことがあります。
エラー例:
このシステムではスクリプトの実行が無効になっています
解決方法
管理者として PowerShell を開き:
Set-ExecutionPolicy RemoteSigned
その後、再度 activate を実行。
8. “activate” のかわりに “source activate” を使っている(Windows で発生)
Windows の CMD や PowerShell では source は不要です。
誤:
source env\Scripts\activate
正:
env\Scripts\activate
まとめ:パスエラーが起きたらまずチェックすること
- 仮想環境が有効化されているか
- activate の場所(Scripts or bin)
- 権限の問題(Mac/Linux)
- Windows の階層が深すぎないか
- 別 Python にパスが奪われていないか
- セキュリティ設定でスクリプトがブロックされていないか




