История изменений
Исправление FishHook, (текущая версия) :
Есть еще poetry, а еще сейчас набегут и скажут всё гавно, юзайте nix. Нет ответа на этот ваш вопрос, есть альтернативы. Мой личный опыт за анаконду, как наиболее безфакапный способ изоляции питона. Могу поделиться маленьким лайфхаком
_pwd_in_code_home(){
test "${PWD#$CODE_HOME}" != "${PWD}"
return $?
}
_activate_conda_on_chpwd() {
_pwd_in_code_home
if [[ $? != "0" ]]; then
return
fi
local ACTIVE_ENV=$CONDA_DEFAULT_ENV
local NEW_ENV=`echo ${PWD#$CODE_HOME} | tr -d "/"`
if test -z $NEW_ENV; then
return
fi
if [[ $ACTIVE_ENV == $NEW_ENV ]]; then
return
fi
conda activate $NEW_ENV 2> /dev/null
if [[ $? == "0" ]]; then
echo Activating conda enviroment $NEW_ENV
fi
}
if [[ -v CODE_HOME ]]; then
autoload -U add-zsh-hook
add-zsh-hook chpwd _activate_conda_on_chpwd
fi
если это добавить в .zshrc то конда будет автоматически переключаться на соответствующий environment при смене каталога
Исходная версия FishHook, :
Есть еще poetry, а еще сейчас набегут и скажут всё гавно, юзайте nix. Нет ответа на этот ваш вопрос, есть альтернативы. Мой личный опыт за анаконду, как наиболее безфакапный способ изоляции питона. Могу поделиться маленьким лайфхаком
_pwd_in_code_home(){
test "${PWD##$CODE_HOME}" != "${PWD}"
return $?
}
_activate_conda_on_chpwd() {
_pwd_in_code_home
if [[ $? != "0" ]]; then
return
fi
local ACTIVE_ENV=$CONDA_DEFAULT_ENV
local NEW_ENV=`echo ${PWD#$CODE_HOME} | tr -d "/"`
if test -z $NEW_ENV; then
return
fi
if [[ $ACTIVE_ENV == $NEW_ENV ]]; then
return
fi
conda activate $NEW_ENV 2> /dev/null
if [[ $? == "0" ]]; then
echo Activating conda enviroment $NEW_ENV
fi
}
if [[ -v CODE_HOME ]]; then
autoload -U add-zsh-hook
add-zsh-hook chpwd _activate_conda_on_chpwd
fi
если это добавить в .zshrc то конда будет автоматически переключаться на соответствующий environment при смене каталога