Не уверен, что он в настоящее время поддерживается, так как официальный документ все еще использует source
в travis.yml .
Что делает conda init
?
Эта новая команда должна согласовать способ настройки пользователями своих оболочек для вызова conda activate
.
На самом деле, если вы запустите conda init --dry-run --verbose
, вы увидите, что он пытается получить conda.sh
из вашего ~/.bashrc
(при условии, что вы используете Bash, исходя из информации, упомянутой в вашем вопросе).
И conda.sh
определят функцию conda()
, которая будет перехватывать несколько команд, среди которых activate
и deactivate
, и отправлять на $CONDA_EXE
:
conda() {
if [ "$#" -lt 1 ]; then
"$CONDA_EXE"
else
\local cmd="$1"
shift
case "$cmd" in
activate|deactivate)
__conda_activate "$cmd" "$@"
;;
install|update|upgrade|remove|uninstall)
"$CONDA_EXE" "$cmd" "$@" && __conda_reactivate
;;
*) "$CONDA_EXE" "$cmd" "$@" ;;
esac
fi
}
Поэтому, если эта функция не определена в вашей локальной оболочке, вы не сможете вызвать conda activate
.
Намек на решение? ( не проверено на Travis CI )
Единственный совет, который я могу предложить, это попробовать source $(conda info --root)/etc/profile.d/conda.sh
, а затем conda activate
. Это должно сделать примерно так же, как conda init
, если вы используете производные оболочки Bourne .
Для csh
есть $(conda info --root)/etc/profile.d/conda.csh
, а для fish
есть $(conda info --root)/etc/fish/conf.d/conda.fish
Примечание: хотя это решение не было проверено на Travis CI, это решение работает для меня из bash. Конечно, исполняемый файл conda должен быть найден в PATH
для conda info --root
для правильной работы.