はじめに#
venvは、Python 3.3から標準ライブラリに加わった、仮想環境を管理するためのツールです。
Pythonで開発を行う際、プロジェクトごとに利用するパッケージのバージョンが異なることは珍しくありません。venvを使うと、プロジェクトごとに独立したPython環境を構築できます。これにより、他のプロジェクトやシステム全体に影響を与えることなく、パッケージのインストールやバージョン管理を安全に行うことができます。
venvの基本的な使い方#
仮想環境を利用する基本的な流れは、「作成 → 有効化 → パッケージインストール → 無効化」となります。
1. 仮想環境の作成#
まず、プロジェクト用のディレクトリを作成し、その中で仮想環境を構築します。
# プロジェクトディレクトリを作成して移動
mkdir my_project
cd my_project
# 仮想環境を作成(慣習的に`venv`という名前が使われます)
python3 -m venv venv
作成が完了すると、venvという名前のディレクトリができます。このディレクトリは、Gitなどのバージョン管理システムから除外するために、.gitignoreファイルにvenv/と追記しておくのが一般的です。
2. 仮想環境の有効化(activate)#
作成した仮想環境は、有効化(activate)することで利用可能になります。コマンドはOSによって異なります。
macOS/Linux:
source venv/bin/activate
Windows (コマンドプロンプト):
venv\Scripts\activate
コマンドが成功すると、ターミナルのプロンプトの先頭に(venv)のように仮想環境名が表示されます。
3. パッケージのインストール#
仮想環境が有効な状態でpipコマンドを使うと、その環境内にのみパッケージがインストールされます。
# 例としてrequestsパッケージをインストール
pip install requests
# インストールされたパッケージを確認
pip list
プロジェクトで利用するパッケージは、requirements.txtというファイルにまとめておくと便利です。
# 現在の環境にインストールされているパッケージをファイルに出力
pip freeze > requirements.txt
# requirements.txtからパッケージをまとめてインストール
pip install -r requirements.txt
4. 仮想環境の無効化(deactivate)#
仮想環境での作業が終わったら、以下のコマンドで無効化(deactivate)します。
deactivate
プロンプトの(venv)という表示が消え、元のターミナル環境に戻ります。
venvとvirtualenvの違い#
venvが登場する前は、virtualenvというサードパーティ製のツールが広く使われていました。主な違いは以下の通りです。
venv: Python 3.3以降の標準機能。追加インストールは不要。virtualenv: 別途インストールが必要 (pip install virtualenv)。venvよりも高機能な面もあるが、基本的な用途ではvenvで十分。
特別な理由がなければ、標準ライブラリであるvenvの使用が推奨されます。
補足:Python自体のバージョンを管理したい場合#
venvはPythonのパッケージ環境を分離しますが、Python自体のバージョン(例: 3.9と3.10)を切り替えることはできません。複数のPythonバージョンを管理したい場合は、pyenvのような専用ツールの利用を検討してください。