TimeCapsule💊

やったこと,やること,やってみたいこと

(Python3)venvのactivateとdeactivateを自動化する

私はpyenv + pyenv-virtualenvを使わず、Homebrewで入れたPython3 + 標準ライブラリのvenvを使っているのですが、activateとdeactivateのコマンドを打つのが面倒臭いので自動化しました。

環境

macOS Sierra 10.12.3

自動化

コード例を置きますので、.zshrc(.bashrc)をいじってください。

chpwd() {
  if [ -d venv ]; then
    source venv/bin/activate
  elif [ "$VIRTUAL_ENV" != "" ]; then
    deactivate
  fi
}

これでcd先にvenv/があればsource venv/bin/activate、venv/がない+仮想環境を有効にしていればdeactivateを自動で行ってくれます。

終わりに

仮想環境を作成する際には、非推奨になったpyvenvではなくpython3 -m venvを使いましょう。