Как активировать среду conda, оставаясь в состоянии изменить среду с помощью eval --setenvironment

У меня есть рабочая среда, в которой мне часто приходится переходить из одной среды Python Conda в другую среду, предоставляемую коллегами для запуска кода. Для того, чтобы при работе я работал в среде conda, в моем.bashrc есть следующий код:

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/opt/soft/cdtng/tools/anaconda/3/bin/conda' 'shell.bash' '$
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/opt/soft/cdtng/tools/anaconda/3/etc/profile.d/conda.sh" ]; then
        . "/opt/soft/cdtng/tools/anaconda/3/etc/profile.d/conda.sh"
    else
        export PATH="/opt/soft/cdtng/tools/anaconda/3/bin:$PATH"
    fi
fi
unset __conda_setup

# <<< conda initialize <<<

Проблема в том, что при такой настройке, когда какой-то коллега просит меня, например, запустить

eval $(anaconda --version 3.1_tf_cpu --setenvironment)

Тогда я получаю сообщение об ошибке:

bash: syntax error near unexpected token `('

И исполнение не работает. Что мне нужно, это:

  • продолжать работать в моей среде conda (когда я запускаю оболочку, я всегда получаю (base) по умолчанию. Это не является обязательным требованием, но я хочу, чтобы, когда я делаю "conda activat myenv", тогда myenv становится активным в оболочке)
  • но мне все еще нужно использовать вышеуказанную команду setenvironment и управлять ею, чтобы она была эффективной.

Извините, если вопрос слишком простой, но я не настолько опытен в управлении средами conda.

1 ответ

Я нашел ответ на свой вопрос в другом посте:

https://stackoverflow.com/questions/54429210/how-do-i-prevent-conda-from-activating-the-base-environment-by-default

Не стесняйтесь удалить этот пост на случай, если это будет нежелательное повторение.

Моя conda, настроенная в.bashrc, теперь выглядит следующим образом:

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/opt/soft/cdtng/tools/anaconda/3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/opt/soft/cdtng/tools/anaconda/3/etc/profile.d/conda.sh" ]; then
        . "/opt/soft/cdtng/tools/anaconda/3/etc/profile.d/conda.sh"
    else
        export PATH="/opt/soft/cdtng/tools/anaconda/3/bin:$PATH"
    fi
fi
unset __conda_setup

#CONDA_AUTO_ACTIVATE_BASE=false
conda config --set auto_activate_base false

# <<< conda initialize <<<
Другие вопросы по тегам