venvについて
venvはPythonで軽量な仮想環境を作成するための標準ライブラリである。
仮想環境をとは
ソフトウェア開発において、プロジェクトごとに異なる依存関係やパッケージを隔離して管理するための仕組みである。
<メリット>
・依存関係の管理..プロジェクトごとに異なるバージョンのパッケージを使用でき、パソコンのPython環境を汚染せずにパッケージをインストールできる。
・再現性の確保..."requirements.txt"ファイルを使用して、特定のバージョンのパッケージを簡単に再インストールできる。
・開発の効率化...複数のプロジェクトを並行して開発する際に、環境設定をプロジェクトごとにカスタマイズできる。また、新しいプロジェクトを始める際にクリーンな環境を素早く作成できる。
<デメリット>
・容量の消費...各仮想環境は独自のPythonインタープリンタ(Pythonプログラムを実行するためのソフトウェア)とパッケージを持つため、各仮想環境ごとに容量を消費する。
・管理の手間...各環境を有効化/無効化する手間や依存関係を最新の状態に保つ環境管理の作業が増える。
環境
python -version
python [USER_VERSION] >= python 3.3
Python 3.3以降のバージョンで使用できる。
利用手順(windows)
仮想環境の作成
cd [PROJECT_DIR]
python -m venv [venv_NAME]
[PROJECT_DIR]には仮想環境を作成するディレクトリを指定する。
[venv_NAME]には仮想環境の名前を指定する。
※仮想環境を作成したディレクトリ以外のプロジェクトでも仮想環境を使用することが可能である。
仮想環境の有効化
cd [USER_PROJECT]
[venv_NAME]\Scripts\activate
環境が有効になるとコマンドラインプロンプトに仮想環境名が表示される。
[PROJECT_DIR]
↓(仮想環境有効化)
([venv_NAME])[USER_DIR]
仮想環境の無効化
以下のコマンドを使用すると仮想環境を無効にする。
([venv_NAME])$ deactivate
パッケージのインストール
仮想環境内でパッケージをインストールする場合、通常の pip コマンドを使用する。
pip install [package_name]
依存関係の管理
プロジェクトの依存関係を記録するには、以下のコマンドで"requirements.txt"を作成する。
pip freeze > requirements.txt
別の環境で同じ依存関係をインストールするには、以下のコマンドを使用する。
pip install -r requirements.txt
"-r"は"--requirement"の短縮形であり、指定されたファイルを読み込み、その内容に基づいてパッケージをインストールする。
参考
・venv --- Creation of virtual environments
・venv: Python 仮想環境管理