venv とは何か
プロジェクト毎に Python の実行環境を変えたい、あるいはローカル環境を汚したくないなど Python の実行環境を分離する時に使われるのが venv
。Python のバイナリやライブラリの依存関係を任意のディレクトリ配下にまとめ、PATH
を上書きするなどして、プロジェクト個別の仮想環境を容易に作成できる。
## インストール (Ubuntu20.04)
$ sudo apt install python3-venv
$ python3.7 -m venv PJ001
$ ls PJ001/
bin include lib lib64 pyvenv.cfg share
## 仮想環境作成
$ source PJ001/bin/activate
(PJ001) $
## 抜けるとき
(PJ001) $ deactivate
bin
には仮想環境の Python 実行ファイルや他パッケージの実行ファイルが配置される。lib
と include
には仮想環境で使うライブラリファイルが配置される(activate
後に追加した新しいパッケージは lib/pythonX.Y/site-packages/
配下にインストールされる)仮想環境を抜けるときは deactivate
を実行。
virtualenv と venv の違い
昔からある同様のツールに virtualenv
がある。Python 3.4 以降であれば venv
を使うことを推奨とのこと。