我最近在我的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在我打开终端会话时不激活基地。
我有conda 4.6与conda添加的类似代码块。在我的例子中,有一个conda配置设置来禁用自动基本激活:
conda config --set auto_activate_base false
第一次运行它时,它会在您的主目录中创建一个./condarc
,并使用该设置覆盖默认值。
这不会破坏你的.bash_profile
,但它是一个更清洁的解决方案,没有手动编辑康达管理的部分。
所以最后我发现如果我像这样注释掉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可用于激活环境,但默认情况下不会激活。
答案取决于您安装的conda
版本。对于conda> = 4.4的版本,初始化后deactivate
conda环境就足够了,所以添加
conda deactivate
在下面
# <<< conda initialize <<<