Python venv環境設定
Pythonのvenv環境を作るには以下のようにpython3.6 -m venv <venv_dir_name>
としたあとにsource <venv_dir_name>/bin/activate
すればいい。
$ python -V
Python 2.7.5
$ which python
/bin/python
$ cd project_directory
$ python3.6 -m venv venv
$ ls
venv
$ source venv/bin/activate
$ python -V
Python 3.6.5
$ which python
/full_path_to_project_directory/venv/bin/python
venv環境から出るためには、deactivate
とターミナルに打つ。
direnvによるvenv activateの自動化
python3.6 -m venv <venv_dir_name>
をするのは環境を作る初回だけだが、source <venv_dir_name>/bin/activate
はvenv環境に入るたびに実行しなければならず、実行し忘れ等のミスを誘発してしまう。またvenv環境から出るためのdeactivate
も手動のため実行し忘れてしまう可能性がある。
direnvというディレクトリを移動したタイミングで環境変数の設定および削除を行ってくれるツールを併用することで、venv環境のactivate, deactivateを自動化する。
direnvのinstall方法
direnvはGoで作られているので、ワンバイナリで落としてくるのが一番簡単なinstall方法。
$ wget https://github.com/direnv/direnv/releases/download/v2.17.0/direnv.linux-amd64 -O direnv
$ chmod a+x direnv
$ mv direnv /usr/local/bin/
direnvはログイン時に.bashrc
で有効化する必要がある。
$ echo 'export EDITOR=vim' >> ~/.bashrc
$ echo 'eval "$(direnv hook bash)"' >> ~/.bashrc
$ source ~/.bashrc
direnvの使用方法
目的のディレクトリに.envrc
ファイルを作成し、その中で環境変数の設定を行う必要がある。direnv edit .
で.envrc
の編集が行える。
.envrc
をdirenvを通さず直接編集することもできるが、その場合はdirenv allow
を実行するまで.envrc
は有効にならない。
$ echo 'source venv/bin/activate' > .envrc
$ direnv allow
.envrc
の設定が終わった後は、目的のディレクトリに移動すると自動でvenv環境に入る。ディレクトリから出ると自動で環境変数がクリアされ、結果的にdeactivateと同じになる。
% cd project_directory/
direnv: loading .envrc
direnv: export +VIRTUAL_ENV ~PATH
$ cd ../
direnv: unloading
手順まとめ
最後にdirenvを使ったvenv環境の構築手順をまとめる。
$ wget https://github.com/direnv/direnv/releases/download/v2.17.0/direnv.linux-amd64 -O direnv
$ chmod a+x direnv
$ mv direnv /usr/local/bin/
$ echo 'export EDITOR=vim' >> ~/.bashrc
$ echo 'eval "$(direnv hook bash)"' >> ~/.bashrc
$ source ~/.bashrc
$ cd project_directory
$ python3.6 -m venv venv
$ echo 'source venv/bin/activate' > .envrc
$ direnv allow
$ pip install --upgrade pip