PYTHON MEBY

Pythonで仮想環境を管理(venv, poetry, pipenv)

この記事では、Pythonで仮想環境を構築・管理するための3つの主要なツールであるvenv、poetry、pipenvを比較解説します。それぞれのメリット・デメリット、具体的な使用方法、そして使い分けのポイントを詳細に説明します。

目次

venv: Python標準の仮想環境管理ツール

venvはPython3.3以降に標準で搭載されている仮想環境作成ツールです。シンプルで軽量、Pythonの標準機能なので追加のインストールは不要です。

python3 -m venv .venv
source .venv/bin/activate  # Linux/macOS
.venv\Scripts\activate  # Windows

上記コマンドで仮想環境を作成し、アクティベートします。deactivateコマンドで非アクティブ化できます。パッケージ管理にはpipを使用します。

pip install requests

venvはシンプルで扱いやすいですが、パッケージ管理は別途pipで行う必要があるため、プロジェクトの依存関係管理が複雑になる可能性があります。

poetry: パッケージ管理と仮想環境を統合したツール

poetryは、パッケージ管理と仮想環境管理を統合したツールです。pyproject.tomlファイルで依存関係を定義し、poetryを通じて仮想環境の作成、パッケージのインストール、依存関係の管理を一元的に行えます。

poetry new myproject
cd myproject
poetry install

poetryは依存関係の管理が容易で、再現性の高い開発環境を構築できます。ただし、venvよりも学習コストが高いです。

poetry add requests

poetry addでパッケージを追加できます。poetry removeで削除できます。

pipenv: pipとvirtualenvを組み合わせたツール

pipenvは、pipとvirtualenvを組み合わせたツールです。pipfileとPipfile.lockで依存関係を管理し、仮想環境の作成とパッケージのインストールを同時に行えます。

pipenv --python 3.9
pipenv install requests

pipenvはvenvよりも機能が豊富で、poetryよりも学習コストが低いと言われています。ただし、poetryと比較して機能が限定的です。

pipenv shell  # 仮想環境をアクティベート
pipenv --rm  # 仮想環境を削除

3つのツールの比較

どのツールを選ぶべきか?

プロジェクト規模や開発者の経験、チームの慣習によって最適なツールは異なります。 - 小規模プロジェクトでシンプルな環境構築をしたい場合:venv - 複雑な依存関係管理が必要なプロジェクト、再現性の高い開発環境が必要な場合:poetry - pipとvirtualenvを使い慣れている、中規模プロジェクトの場合:pipenv

補足:仮想環境のベストプラクティス

  • 常に仮想環境を使用する
  • プロジェクトごとに仮想環境を作成する
  • 依存関係を明確に管理する
  • 仮想環境をバージョン管理に含める(例: .gitignoreに.venvを追加しない)

関連記事