はじめに
pyenv
と venv
の使い分けを質問された時の回答メモ。
概要
pyenv
とvenv
は、Pythonのバージョン管理と仮想環境管理に使われるツール。
主な目的と機能は、pyenv
とvenv
で異なる。
pyenv
-
主な目的
Pythonのバージョン管理 -
機能
複数のPythonバージョンをインストールし、プロジェクトごとに異なるPythonバージョンを簡単に切り替えることができる -
使用シチュエーション
異なるプロジェクトで異なるPythonバージョンを使用する必要がある場合等
venv
-
主な目的
Pythonの仮想環境管理 -
機能
Pythonの標準ライブラリに含まれているツールで、プロジェクトごとに独立したPython環境を作成し、プロジェクトの依存関係を他のプロジェクトと分離できる -
使用シチュエーション
特定のプロジェクトの依存関係を管理し、その依存関係がシステム全体や他のプロジェクトに影響を与えないようにしたい場合
シチュエーション例
異なるPythonバージョンでの開発を行う場合
-
シチュエーション
- 複数のプロジェクトを持っており、それぞれ異なるPythonバージョンで動作させる必要がある
-
選択
-
pyenv
を使用して、プロジェクトごとに異なるPythonバージョンを切り替えて開発を行う
-
プロジェクト固有の依存関係管理
-
シチュエーション
- あるプロジェクトに特定のパッケージのバージョンが必要で、これが他のプロジェクトやシステム全体に影響を与えないようにしたい場合
-
選択
-
venv
を使用して、そのプロジェクト専用の仮想環境を作成し、そこに必要なパッケージとバージョンのインストールを行う
-
組み合わせて使用:
- シチュエーション
- 特定のPythonバージョンで新しいプロジェクトを開始し、そのプロジェクトの依存関係を完全に分離したい場合
- 選択
-
pyenv
で必要なPythonバージョンをインストールし、そのバージョンでvenv
を使用して新しい仮想環境を作成する
-
さいごに
かんたんでしたね