How do I prevent Conda from activating the base environment by default?
我最近在Mac上安装了anaconda2。默认情况下,将Conda配置为在打开新的终端会话时激活基本环境。
我想访问Conda命令(即我想将Conda的路径添加到我的$ PATH中,初始化时Conda会这样做,所以就可以了)。
但是我通常不使用python编程,并且我不希望Conda默认激活环境。
第一次从提示符处执行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # >>> 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环境。
我试图注释掉整个区块,除了
1 | export PATH="/Users/geoff/anaconda2/bin:$PATH" |
但是,当我开始一个新的会话并尝试激活环境时,我收到了以下错误消息:
1 | CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. |
这个问题(以及其他类似的问题)很有帮助,但最终并不能回答我的问题,更适合Linux用户。
为了澄清起见,我不是要从我的
我有conda 4.6,其中包含由conda添加的类似代码块。就我而言,有一个conda配置设置可以禁用自动基本激活:
1 | conda config --set auto_activate_base false |
第一次运行它时,它将在主目录中创建一个
这不会使您的
答案取决于您所安装的
1 | conda deactivate |
就在下面
1 | # <<< conda initialize <<< |
所以最后我发现,如果我像这样注释掉Conda初始化块:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # >>> 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可用于激活环境,但默认情况下不会激活。
在
使用子命令
1 | conda config --set auto_activate_base false |
实际上,前一个
1 2 3 4 | # auto_activate_base (bool) # Automatically activate the base environment during shell # initialization. for `conda init` auto_activate_base: false |
在外壳的init文件中设置环境变量
1 | CONDA_AUTO_ACTIVATE_BASE=false |
To convert from the
condarc file-based configuration parameter name to the environment variable parameter name, make the name all uppercase and prependCONDA_ . For example, conda’salways_yes configuration parameter can be specified using aCONDA_ALWAYS_YES environment variable.
环境设置优先于
参考文献
- 适用于高级用户的Conda配置引擎
- 使用.condarc conda配置文件
-
conda config --describe - Conda 4.6版本
要在终端中禁用conda基本环境的自动激活:
1 | conda config --set auto_activate_base false |
要激活conda基本环境:
1 | conda activate |
这可能是最近的Python的错误。什么对我有用:
步骤1:
1 2 3 4 5 6 | #!/bin/sh _CONDA_ROOT="/anaconda" # Copyright (C) 2012 Anaconda, Inc # SPDX-License-Identifier: BSD-3-Clause \."$_CONDA_ROOT/etc/profile.d/conda.sh" || return $? conda activate"$@" |
步骤2:注释掉最后一行: