ちょいメモ。
久しぶりに Python を書くにあたって環境構築する際、 2018年のPythonプロジェクトのはじめかた - Qiita を見て Pipenv を使ってみた。
普通に pipenv shell
で仮想環境を作成すると
~/workspace/Python/pipenv-sandbox $ pipenv shell Creating a virtualenv for this project… Using /Users/yamazaki/.pyenv/versions/3.6.5/bin/python3.6m (3.6.5) to create virtualenv… ⠋Running virtualenv with interpreter /Users/yamazaki/.pyenv/versions/3.6.5/bin/python3.6m Using base prefix '/Users/yamazaki/.pyenv/versions/3.6.5' New python executable in /Users/yamazaki/.local/share/virtualenvs/pipenv-sandbox-9fl74ZVx/bin/python3.6m Also creating executable in /Users/yamazaki/.local/share/virtualenvs/pipenv-sandbox-9fl74ZVx/bin/python Installing setuptools, pip, wheel...done. Virtualenv location: /Users/yamazaki/.local/share/virtualenvs/pipenv-sandbox-9fl74ZVx Spawning environment shell (/bin/zsh). Use 'exit' to leave. . /Users/yamazaki/.local/share/virtualenvs/pipenv-sandbox-9fl74ZVx/bin/activate ~/workspace/Python/pipenv-sandbox $ . /Users/yamazaki/.local/share/virtualenvs/pipenv-sandbox-9fl74ZVx/bin/activate (pipenv-sandbox-9fl74ZVx) ~/workspace/Python/pipenv-sandbox $
というように、プロジェクトディレクトリとは別のグローバルな場所( ~/.local/share/virtualenvs/
)に仮想環境が作られる。
これを、
$ virtualenv venv
したときと同じように、各プロジェクトディレクトリの下に作成したい。
Configuration With Environment Variables を読むと
PIPENV_VENV_IN_PROJECT
— If set, use.venv
in your project directory instead of the global virtualenv managerpew
.
とあり、 .zshrc
に
export PIPENV_VENV_IN_PROJECT=true
を追加したところ、プロジェクトディレクトリの下に仮想環境が作成されるようになった。
~/workspace/Python/pipenv-sandbox $ pipenv shell Creating a virtualenv for this project… Using /Users/yamazaki/.pyenv/versions/3.6.5/bin/python3.6m (3.6.5) to create virtualenv… ⠋Running virtualenv with interpreter /Users/yamazaki/.pyenv/versions/3.6.5/bin/python3.6m Using base prefix '/Users/yamazaki/.pyenv/versions/3.6.5' New python executable in /Users/yamazaki/workspace/Python/pipenv-sandbox/.venv/bin/python3.6m Also creating executable in /Users/yamazaki/workspace/Python/pipenv-sandbox/.venv/bin/python Installing setuptools, pip, wheel...done. Virtualenv location: /Users/yamazaki/workspace/Python/pipenv-sandbox/.venv Spawning environment shell (/bin/zsh). Use 'exit' to leave. . /Users/yamazaki/workspace/Python/pipenv-sandbox/.venv/bin/activate ~/workspace/Python/pipenv-sandbox $ . /Users/yamazaki/workspace/Python/pipenv-sandbox/.venv/bin/activate (pipenv-sandbox) ~/workspace/Python/pipenv-sandbox $ # .venv ディレクトリが作られている (pipenv-sandbox) ~/workspace/Python/pipenv-sandbox $ ls -al total 8 drwxr-xr-x 4 yamazaki staff 136 5 16 02:33 ./ drwxr-xr-x 8 yamazaki staff 272 5 16 02:08 ../ drwxr-xr-x 5 yamazaki staff 170 5 16 02:33 .venv/ -rw-r--r-- 1 yamazaki staff 138 5 16 02:08 Pipfile
.venv
というディレクトリ名は変更できないのかな。
個人的にはこちらの方が好みだけど、両者にメリットデメリットあるのかは不明。
ちなみに
仮想環境が作られた場所を確認するには --venv
オプションを使う。
(pipenv-sandbox-9fl74ZVx) ~/workspace/Python/pipenv-sandbox $ pipenv --venv /Users/yamazaki/.local/share/virtualenvs/pipenv-sandbox-9fl74ZVx