仮想環境の管理

Pythonを使って様々なアプリケーションを開発するようになると、プロジェクトごとに使用するライブラリ(パッケージ)の種類やバージョンが異なってくるケースが多々あります。
例えば、あるプロジェクトでは古いバージョンのライブラリが必要なのに、別のプロジェクトでは最新版を使いたいといった状況です。これらをPC本体のPython環境(システム環境)にそのままインストールしていくと、パッケージ同士が衝突してプログラムが動かなくなる原因になります。
このようなトラブルを防ぎ、プロジェクトごとに独立した隔離空間を作る仕組みが「仮想環境(Virtual Environment)」です。
仮想環境の作成方法
Pythonには標準ライブラリとして venv という仮想環境作成ツールが最初から組み込まれています。そのため、外部ツールを追加することなく、コマンドライン(ターミナルやコマンドプロンプト)からすぐに環境を構築できます。
仮想環境を作成したいプロジェクトのフォルダ(ディレクトリ)に移動し、以下のコマンドを実行します。
# 【基本形】 python -m venv 仮想環境の名前
# 一般的には「.venv」や「env」といったフォルダ名がよく使われます。
python -m venv .venv
上記のコマンドを実行すると、現在のフォルダ内に指定した名前(例では .venv)のフォルダが自動的に生成されます。このフォルダの中に、隔離されたPythonの実行ファイルやパッケージを格納するための領域一式が詰め込まれています。
仮想環境の有効化(アクティベート)
仮想環境は、作成しただけではまだ機能していません。その隔離空間の中に「入る」ための操作(有効化)が必要です。この有効化コマンドは、お使いのOSや使用しているシェル(コマンドラインの種類)によって異なるため注意してください。
| OS | 使用するシェル | 有効化(アクティベート)コマンド |
|---|---|---|
| Windows | コマンドプロンプト(cmd) | .venv\Scripts\activate.bat |
| Windows | PowerShell | .venv\Scripts\Activate.ps1 |
| macOS / Linux | bash / zsh | source .venv/bin/activate |
コマンド実行後、プロンプトの先頭に (.venv) のように、有効化した仮想環境の名前がカッコ付きで表示されれば成功です。
初心者がつまずきやすいポイント:Windowsでの実行ポリシーエラー
WindowsのPowerShellでアクティベートを試みた際、スクリプトの実行がシステムで無効になっているため、ファイルを開けませんといったエラー(スクリプト実行禁止エラー)が出ることがあります。これはPowerShellのセキュリティ制限が原因です。その場合は、事前にSet-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Processというコマンドを実行して、一時的に実行許可を与えてから再度試してみてください。
仮想環境の無効化(ディアクティベート)
作業が終わり、仮想環境から抜け出して元のPC本体(システム全体)の環境に戻りたい場合は、以下のコマンドを実行します。このコマンドはOSを問わず共通です。
# 仮想環境を抜ける
deactivate
実行後、プロンプト先頭の (.venv) という表示が消えれば、無事に元の環境に戻っています。
仮想環境内でのパッケージ管理
仮想環境が有効化された状態(プロンプトに (.venv) が出ている状態)で、パッケージ管理コマンド pip を使用します。
# 例:Web通信用のパッケージ「requests」をインストールする
pip install requests
この状態でインストールされた requests ライブラリは、.venv フォルダの中にだけ保存されます。そのため、他のプロジェクトやシステム環境に意図しない悪影響を与える心配は一切ありません。
実務に必須のテクニック:環境の共有(requirements.txt)
共同開発や、別のPCへの環境移行の際、.venv フォルダそのものを他人に送ったり、Gitなどのバージョン管理システムにアップロードしたりしてはいけません(フォルダ容量が非常に大きく、OS依存のファイルも含まれるため)。
実務では、代わりに「インストールされているライブラリのリスト」を書いたテキストファイルを作成して共有します。
# 1. 現在の仮想環境にいるパッケージ一覽をテキストに書き出す
pip freeze > requirements.txt
# 2. 【受け取った側】テキストを元に、新しい仮想環境にパッケージを一括インストールする
pip install -r requirements.txt
この requirements.txt を使ったやり取りは、Python開発における世界共通の標準ルールとなっています。
仮想環境の削除方法
プロジェクトが不要になった、あるいは環境が汚れて新しく作り直したいという場合は、仮想環境を無効化(deactivate)した状態で、作成されたフォルダ(.venv など)を丸ごと削除するだけで完了します。
PC全体の環境を汚すことなく、エクスプローラーなどで右クリックしてゴミ箱へ捨てるだけで綺麗さっぱりクリーンアップできることも、仮想環境を利用する大きなメリットです。
仮想環境管理コマンドリファレンス
開発中によく使用するコマンドとその役割をまとめました。
| コマンド | 実行するタイミング・主な目的 |
|---|---|
python -m venv .venv |
プロジェクトの立ち上げ時に、新しくクリーンな隔離空間をフォルダとして生成する。 |
source .venv/bin/activate (または Windows用の各種activate) |
作業開始時。この隔離環境の中でプログラムの実行やパッケージの追加を行うように切り替える。 |
deactivate |
作業終了時。仮想環境から安全に抜け出す。 |
pip freeze > requirements.txt |
開発の区切り。現在の仮想環境にインストールされているパッケージの構成リストを保存・出力する。 |
pip install -r requirements.txt |
他のメンバーからプロジェクトを引き継いだ時。構成リスト通りにパッケージを自動再現する。 |
まとめ
- プロジェクトごとに隔離空間を作る:仮想環境を利用することで、異なるプロジェクト間でのライブラリのバージョン衝突を防ぐことができます。
- 有効化(activate)のルールを覚える:仮想環境は作成するだけでなく、OSやシェルに合わせたコマンドで必ず「有効化」してから使用する必要があります。
- 共有はテキストファイルで行う:環境を共有・移行する際は、重いフォルダごと渡すのではなく、
requirements.txtを生成してパッケージリストのみをスマートに共有するのがプロの鉄則です。