我有一个工作环境,在这个环境中,我需要经常从一个 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
我在另一篇文章中找到了问题的答案:
如果出现不必要的重复,请随意删除此帖子。
我在 .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 <<<