如何激活 conda 环境,同时仍能使用 eval --setenvironment 更改环境

如何激活 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 环境中工作(当我启动 shell 时,我总是默认使用 (base)。这不是必需的,但我希望当我执行“conda activate myenv”时,myenv 会在 shell 中激活)
  • 但我仍然需要能够使用上述 setenvironment 命令并管理它以使其有效。

抱歉,这个问题太基础了,但我并不是管理 conda 环境的专家。

答案1

我在另一篇文章中找到了问题的答案:

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

如果出现不必要的重复,请随意删除此帖子。

我在 .bashrc 中设置的 conda 现在如下所示:

# >>> 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 <<<

相关内容