Dry*_*bel 124 bash anaconda conda
我最近在我的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 <<<
Run Code Online (Sandbox Code Playgroud)
如果我注释掉整个块,那么我就无法激活任何Conda环境.
我试图评论整个街区除外
export PATH="/Users/geoff/anaconda2/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
但是当我开始一个新会话并尝试激活一个环境时,我收到了以下错误消息:
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
Run Code Online (Sandbox Code Playgroud)
这个问题(以及其他类似的问题)很有帮助,但最终没有回答我的问题,更适合linux用户.
为了澄清,我不要求删除(base)
从我$PS1
我所要求的康达当我打开一个终端会话不激活基地.
jie*_*ong 248
我有conda 4.6与conda添加的类似代码块.在我的例子中,有一个conda配置设置来禁用自动基本激活:
./condarc
第一次运行它时,它将.bash_profile
在您的主目录中使用该设置创建一个覆盖默认值的设置.
这不会破坏您的混乱,./condarc
但它是一个更清洁的解决方案,无需手动编辑conda管理的部分.
小智 18
要在终端中禁用 conda 基础环境的自动激活:
conda config --set auto_activate_base false
Run Code Online (Sandbox Code Playgroud)
要激活 conda 基础环境:
conda activate
Run Code Online (Sandbox Code Playgroud)
dar*_*ith 17
答案取决于conda
您所安装的版本。对于conda> = 4.4的版本,deactivate
初始化后对conda环境应该足够了,因此添加
conda deactivate
Run Code Online (Sandbox Code Playgroud)
就在下面
# <<< conda initialize <<<
Run Code Online (Sandbox Code Playgroud)
Dry*_*bel 14
所以最后我发现,如果我像这样注释掉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 <<<
Run Code Online (Sandbox Code Playgroud)
正是我想要的。也就是说,如果需要,Conda可用于激活环境,但默认情况下不会激活。
conda
4.6 之后,有3种方法可以达到此目的。(最后一种方法具有最高优先级。)
使用子命令conda config
来更改设置。
conda config --set auto_activate_base false
Run Code Online (Sandbox Code Playgroud)实际上,前一个conda config
子命令正在更改配置文件.condarc
。我们可以.condarc
直接修改。将以下内容添加到.condarc
您的主目录下,
# auto_activate_base (bool)
# Automatically activate the base environment during shell
# initialization. for `conda init`
auto_activate_base: false
Run Code Online (Sandbox Code Playgroud)CONDA_AUTO_ACTIVATE_BASE
在外壳的init文件中设置环境变量。(.bashrc
对于bash,.zshrc
对于zsh)
# auto_activate_base (bool)
# Automatically activate the base environment during shell
# initialization. for `conda init`
auto_activate_base: false
Run Code Online (Sandbox Code Playgroud)
要从
condarc
基于文件的配置参数名称转换为环境变量参数名称,请将名称全部大写并前置CONDA_
。例如,always_yes
可以使用CONDA_ALWAYS_YES
环境变量来指定conda的配置参数。
环境设置优先于.condarc
文件中的相应设置。
conda config --describe