Pythonの仮想環境
仮想環境とは
Pythonにおける仮想環境とは使っているPC上に作られる仮想的なPythonの実行環境のことです。
Pythonを利用して開発をしていると外部パッケージを利用することがあります。
仮想環境などなくても開発することは可能なのですが、仮想環境を使えた方が便利なことが多いです。
例えば、仮想環境を利用せずに開発した場合、そのPCで開発するすべてのツールは1つのバージョンを使わざるを得なくなります。

もし仮想環境を利用すると以下のようにツールごとに異なる環境を用意することができます。

仮想環境を利用するメリット
仮想環境を利用することで得られるメリットは以下になります。
端末全体の環境をクリーンにしておける
端末全体でパッケージをインストールすると、その端末で開発するときやPythonプログラムを実行するときにインストールしているパッケージの影響を受けてしまうことがあります。その場合、その環境固有の問題からプログラムを実行することができなくなってしまうこともあります。
仮想環境を導入していると端末自体にパッケージをインストールする必要性が少なくなるため、きれいな環境を用意しやすくなります。
パッケージ管理が容易になる
Pythonではインストールしているパッケージを管理することができます。その時、仮想環境を用意していると必要最小限のパッケージをインストールするようになりやすいです。そのため、パッケージの管理が容易になります。
プロジェクトごとに異なる環境を用意できる
仮想環境を作成すると仮想環境ごとに個別にパッケージをインストールすることができるようになります。これにより、一つの仮想環境でパッケージをインストールしたとしても、他の仮想環境には影響を与えません。
また、仮想環境ごとに異なるバージョンのパッケージをインストールすることも可能になります。
古いプロジェクトを運用できる
仮想環境を利用するとパッケージの管理をすることが容易になるというメリットがあります。
これは特定のバージョンのパッケージを利用することが可能になるということでもあります。プログラムを書いていると、依存しているパッケージがアップデートされてしまったために動かなくなることがあります。
パッケージ管理をすることで特定のバージョンのパッケージを利用することができ、古くなったプログラムを運用しやすくなります。
仮想環境の運用
仮想環境を作成することができるツールはいくつかあります。今回はPythonに標準で搭載されているvenvというライブラリを用いて説明しようと思います。
仮想環境の作成
以下のコマンドで仮想環境を作成することができます。仮想環境名はアルファベットであれば何でもよいのですが、一般的には「.venv」とつけることが多いです。
python3 vnev (仮想環境名)
仮想環境を有効化する
仮想環境上でパッケージをインストールしたり、プログラムを実行するためには仮想環境を有効化する必要があります。仮想環境を有効化する方法はWindowsとそれ以外で異なります。それぞれ以下のコマンドで有効化することができます。コマンド例は以下の前提で書いています。
・仮想環境名が「.venv」である
・カレントディレクトリに.venvフォルダがある
Windowsの場合
.venv/Scripts/activate
Linux/Macの場合
source .venv/bin/activate
仮想環境を作成してみたらわかりますが、.venvフォルダのbinやScriptsフォルダに入っているactivateというファイルを実行しています。もし、カレントディレクトリに.venvがない場合はそれに合わせてパスを指定してあげる必要があります。
仮想環境を抜ける
仮想環境から抜けるためのコマンドはWindowsとそれ以外で共通です。以下のコマンドで仮想環境を抜けることができます。
deactivate
requirements.txtでパッケージのバージョンを管理する
venvではパッケージ管理にはPython標準のpipを利用します。pipでは現在の環境の依存関係を出力するコマンドを利用して、出力結果をファイルに出力します。
pip freeze > requirements.txt
これでrequirements.txtにパッケージの依存関係が出力されます。
requirements.txtの部分はファイル名を表しているだけなので任意の名前を付けることができます。慣例的にはrequirements.txtとつけることが多いです。
requirements.txtから必要なパッケージをインストールする
以下のコマンドで一括でパッケージをインストールすることができます。
pip install -r requirements.txt
開発しているうちは適宜インストールするため、必要になりませんが、異なる環境にプログラムを持ってきて実行できるようにするときにこのコマンドが有効です。
仮想環境の削除
仮想環境を新しく作り直したい場合などに今ある仮想環境を削除するときは仮想環境のフォルダを削除するだけでよいです。
さいごに
Pythonの仮想環境を利用することで1つのPCの中に仮想的な実行環境をたくさん作ることが可能になります。これにより、異なるPythonのバージョンを並行運用したり、パッケージの管理が容易になります。また、パッケージの依存関係のよって動かなくなることがありますが、その場合は仮想環境のフォルダを削除するだけで破棄することができるため、気軽にPythonプログラムが動くかの実験をすることができるようになります。
快適なプログラミングの学習や開発をするときは仮想環境を使いましょう。