LoginSignup
3
2

More than 3 years have passed since last update.

conda+direnvで仮想環境を自動で切り替える

Posted at

方法

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が使えるようになります。

参考

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2