conda の Python 仮想環境を peco で簡単に切り替える


conda で管理している Python 仮想環境を peco で選択して簡単に切り替えます。

前提

以下をインストール済みであるものとして話を進めます。

  • Anaconda OR Miniconda
  • peco

これらのインストールに関しては次を参考にしてください。

設定

例えば、 bash であれば ~/.bashrc とかに以下を追記してください。

function sa() {
    local conda_envs=$(conda info -e | awk '{print $1}' | grep -v "#")
    source activate $(peco <<< ${conda_envs})
}

alias sd="source activate base"

Shell 関数 sa()function で宣言しなくても定義できます。

  • sa: source activate
  • sd: source deactivate

で名前を付けました。もちろんお好きな名前を付けられます。今回はシステムの Python を使わないために source activate base しているので、 deactivate はしていません。ですが便宜上 sd としています。 deactivate したい人は以下のようにしてください。

- alias sd="source activate base"
+ alias sd="source deactivate"

保存したら source ~/.bashrc もしくは exec ${SHELL} を実行して設定を読み込みます。

sourceconda で置き換えることが可能です。最新の conda では conda コマンドで Python 仮想環境を切り替えることを推奨しています。 conda activate の初回実行ではエラーが出ると思うので次を参考にして解決してください。

使い方

sa を実行すれば、作成済みの仮想環境が一覧表示されます。カーソルキーや Ctrl + n Ctrl + p などで選択するか、インクリメンタルサーチをすることで切り替え先の仮想環境を選ぶことができます。エンターキーを押せば source activate ${env_name} が実行されて仮想環境が切り替わります。