如何防止Conda默认激活基础环境?

问题描述 投票:29回答:3

我最近在我的Mac上安装了anaconda2。默认情况下,Conda配置为在我打开新的终端会话时激活基本环境。

我想要访问Conda命令(即我希望Conda的路径添加到我的$ PATH,Conda在初始化时会这样做,这样就可以了)。

但我通常不用python编程,我不希望Conda默认激活环境。

当第一次从提示符执行conda init时,Conda将以下内容添加到我的.bash_profile

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

如果我注释掉整个块,那么我就无法激活任何Conda环境。

我试图评论整个街区除外

export PATH="/Users/geoff/anaconda2/bin:$PATH"

但是当我开始一个新会话并尝试激活一个环境时,我收到了以下错误消息:

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.

This question(和其他人喜欢它)很有帮助,但最终没有回答我的问题,更适合linux用户。

为了澄清,我不是要求从我的(base)中移除$PS1我要求Conda在我打开终端会话时不激活基地。

bash anaconda conda
3个回答
114
投票

我有conda 4.6与conda添加的类似代码块。在我的例子中,有一个conda配置设置来禁用自动基本激活:

conda config --set auto_activate_base false

第一次运行它时,它会在您的主目录中创建一个./condarc,并使用该设置覆盖默认值。

这不会破坏你的.bash_profile,但它是一个更清洁的解决方案,没有手动编辑康达管理的部分。


13
投票

所以最后我发现如果我像这样注释掉Conda初始化块:

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

它完全符合我的要求。也就是说,如果需要,Conda可用于激活环境,但默认情况下不会激活。


11
投票

答案取决于您安装的conda版本。对于conda> = 4.4的版本,初始化后deactivate conda环境就足够了,所以添加

conda deactivate

在下面

# <<< conda initialize <<<
© www.soinside.com 2019 - 2024. All rights reserved.