Pythonで開発を始めると、ライブラリのバージョン違いや依存関係の衝突に悩まされることがあります。
そんなときに役立つのが、Python標準の仮想環境ツール venv(ブイエンブ) です。
この記事では、mac・Windows共通で使える最もシンプルなvenvの使い方を紹介します。
venvとは何か
venv は「Virtual Environment(仮想環境)」の略で、1つのプロジェクト専用に独立したPython環境を作る仕組みで、バージョン3.3以降で標準モジュールとして組み込まれました。
同じPC上に複数のプロジェクトがあっても、ライブラリのバージョンを干渉させず安全に管理できます。
たとえば、プロジェクトAではStable Audio Openの検証用にPyTorch 2.1を使用し、プロジェクトBではOpenAI Whisperを動かすためにPyTorch 1.13を使いたい場合、そのまま同じ環境に入れてしまうと依存ライブラリが競合して動かなくなることがあります。
こうしたときにvenvを使えば、AとBそれぞれに独立したPython環境を作り、互いに干渉せずに動作させることができます。
venvのメリット
venvの最大の利点は「環境が壊れないこと」です。
グローバル(システム全体)にライブラリを入れると、別のプロジェクトにも影響が出てしまいます。
しかしvenvを使えば、プロジェクトごとに独立した環境が作られるため、依存関係を完全に分離できます。
また、後で別の開発者が同じ環境を再現することも簡単です。
これは再現性(Reproducibility)と呼ばれ、チーム開発やAI実験ではとても重要な考え方です。
venvの基本構造
venvを作ると、プロジェクトフォルダの中に .venv というディレクトリが生成されます。
その中には、Pythonの実行ファイルとライブラリのコピーが含まれます。
つまり「自分専用のPython」がプロジェクトの中にできるイメージです。
project/
├── .venv/
├── main.py
└── requirements.txt
.venv はPython実行環境を丸ごとコピーして保持します。重いフォルダなので、Gitなどのバージョン管理には含めず、.gitignore に指定しておきましょう。
不要になった場合は.venvフォルダを削除します。再構築も同じ手順を繰り返せばOKです。
venvの作り方(mac / Linux)
まず、使用するPythonをpyenvなどで選んでから、以下を実行します。
$ python -m venv .venv
$ source .venv/bin/activate
最初のコマンドで仮想環境を作成し、
2行目でその環境を有効化(activate)します。
有効化すると、プロンプトの先頭に (venv) などが表示され、
以降の pip install はすべてこの仮想環境内にインストールされます。
無効化したいときは次のコマンドです。
作業が完了して元のPythonを参照する必要がなければ、ターミナルをそのまま閉じてもOKです。
$ deactivate
venvの作り方(Windows)
PowerShellまたはCMDで次のように実行します。
$ python -m venv .venv
$ .\.venv\Scripts\Activate.ps1
初回はPowerShellの実行ポリシーを変更する必要があります。
$ Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
これで、PowerShellが.ps1スクリプトの実行を許可し、venvを問題なく有効化できます。
無効化したいときは次のコマンドです。
作業が完了して元のPythonを参照する必要がなければ、PowerShellをそのまま閉じてもOKです。
$ deactivate
venvでライブラリを管理する
仮想環境を有効にした状態で、必要なライブラリをpipでインストールします。
$ python -m pip install requests
すでにインストールしたライブラリ一覧を保存したい場合は次のコマンドを使います。
$ python -m pip freeze > requirements.txt
他の環境で同じ設定を再現したいときは、このファイルを使ってインストールできます。
$ python -m pip install -r requirements.txt
こうしておくことで、他の開発者や別マシンでもまったく同じ環境を再構築できます。
pyenvとの違いと組み合わせ
よく混同されますが、pyenvはPython本体を切り替えるツール、
venvはその中でライブラリを分ける仕組みです。
どちらも役割が異なり、併用することで最も安定した環境を作れます。
$ pyenv local 3.11.9
$ python -m venv .venv
$ source .venv/bin/activate
この順番で作ると、「3.11.9のPython環境の中に専用のvenv」を作る形になります。
AIモデルや音楽生成など複数のプロジェクトを扱う場合に最適です。
よくある質問(FAQ)
Q. venvとAnacondaの違いは?
→ venvはPython標準の軽量な仮想環境、Anacondaはデータ分析用ライブラリを含む大型環境です。
小規模開発やWebアプリにはvenv、科学計算・AI研究にはAnacondaが向きます。
Q. venvのフォルダ名は .venv でないとダメ?
→ 任意ですが、.venv が一般的です。VS Codeなど多くのツールが自動認識します。
Q. 既存プロジェクトにvenvを追加したいときは?
→ フォルダに移動して python -m venv .venv を実行すればOKです。既存コードはそのまま使えます。
参考リンク
まとめ
venvはPython開発の「安全装置」です。
プロジェクトごとに環境を分けることで、依存関係の衝突を防ぎ、いつでも同じ状態を再現できます。
開発初期からvenvを導入しておくことで、将来のトラブルを大幅に減らせます。


