bashとzshで設定の仕方が若干異なったので整理しました。詳細は下記の元記事を参照してください。
- https://dev.classmethod.jp/articles/how-to-auto-conda-activate/
- https://qiita.com/noraworld/items/4062e8dd3ccffecb4801#prompt_command-%E3%81%A7%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92-precmd-%E3%81%AB%E7%A7%BB%E8%A1%8C%E3%81%99%E3%82%8B
bash/zsh共通
切り替えたいディレクトリで、当該環境をactivateし、その環境名を.environment.yaml
に書き出す。
conda config --set auto_activate_base false
conda activate hogehoge
conda env export > .environment.yaml
zshの場合
~/.zshrc
に下記を書き込む。
# Auto activate conda environments
function conda_auto_env() {
if [ -e ".environment.yaml" ]; then
ENV_NAME=`head -n 1 .environment.yaml | cut -f2 -d ' '`
# Check if you are already in the environment
if [[ $CONDA_PREFIX != *$ENV_NAME* ]]; then
# Try to activate environment
conda activate $ENV_NAME &>/dev/null
fi
fi
}
precmd() {
conda_auto_env
}
bashの場合
~/.bashrc
に下記を書き込む。
# Auto activate conda environments
function conda_auto_env() {
if [ -e ".environment.yaml" ]; then
ENV_NAME=$(head -n 1 .environment.yaml | cut -f2 -d ' ')
# Check if you are already in the environment
if [[ $CONDA_PREFIX != *$ENV_NAME* ]]; then
# Try to activate environment
source activate $ENV_NAME &>/dev/null
fi
fi
}
export PROMPT_COMMAND="conda_auto_env;$PROMPT_COMMAND"