メインコンテンツへスキップ

仮想環境venv入門

·
目次

はじめに
#

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のような専用ツールの利用を検討してください。

参考資料
#