方法
condaで仮想環境を切り替えるには、
conda activate <ENV_NAME>
ですが、いちいちプロジェクト毎に切り替えるのは面倒です。
direnvを使うことで、自動で環境を切り替えることができます。
該当のプロジェクトに.envrcを作成し、以下を記述します。
eval "$(conda shell.bash hook)"
conda activate <ENV_NAME>
こうすることで、該当プロジェクトに移ったら、.envrcが実行され指定した仮想環境が自動でactivateされます。
該当プロジェクトを抜けるとunsetされ、仮想環境からも自動で抜けることができます。
ちなみに、
conda activate
だけだと conda init
を先に実行しろとおこられます。(おこってるわけじゃないと思いますが)
このコマンドはcondaをセットアップした時点でもう実行しているはずです。なので素直に.envrcに記述するのはちょっとアレな感じです。
そもそも conda init
ではいろいろなファイルを作成したり、bash_profileに追記してくれたりします。この作成されるファイル群の中に/<condaのパス>/etc/profile.d/conda.sh
が含まれています。ここに conda activate
のスクリプトが書いてあります。
conda shell.bash hook
はそのconda.shの中身を返してくれます。evalすることによりconda.shを実行し conda activate
が使えるようになります。
参考