Anaconda2装TensorFlow后终端出现(base)标识的疑问及咨询
问题描述
我在iMac上安装了Anaconda2,随后通过两种方式安装TensorFlow:一是使用命令conda install -c conda-forge tensorflow,二是通过Anaconda Navigator搜索tensorflow包并选择安装。两种操作完成后,我的命令行终端变为(base) Admin's-iMac:~ admin$,出现了(base)标识。
我想了解这个(base)是什么?查看我的.bash_profile文件,发现以下由Anaconda2 2018.12安装程序添加的初始化代码:
# added by Anaconda2 2018.12 installer # >>> conda init >>> # !! Contents within this block are managed by 'conda init' !! __conda_setup="$(CONDA_REPORT_ERRORS=false '/Users/admin/anaconda2/bin/conda' shell.bash hook 2> /dev/null)" if [ $? -eq 0 ]; then \eval "$__conda_setup" else if [ -f "/Users/admin/anaconda2/etc/profile.d/conda.sh" ]; then . "/Users/admin/anaconda2/etc/profile.d/conda.sh" CONDA_CHANGEPS1=false conda activate base else \export PATH="/Users/admin/anaconda2/bin:$PATH" fi fi unset __conda_setup # <<< conda init <<<
看起来满足了conda初始化的部分条件,执行了CONDA_CHANGEPS1=false conda activate base,导致每次打开终端都会激活base虚拟环境,显示(base)标识。这是否意味着conda或conda包安装出现错误?是否需要重装Anaconda2来去除这个(base)标识?
解答
什么是(base)标识?
(base)是Anaconda默认创建的基础虚拟环境,它包含了Anaconda自带的所有核心工具包(比如conda本身、Python解释器等)。每次打开终端自动激活这个环境是Anaconda初始化脚本的默认行为,完全不是安装错误,你不需要重装Anaconda2。
为什么会自动激活base环境?
从你提供的.bash_profile代码来看,初始化脚本在找不到更合适的shell hook时,会执行conda activate base来激活默认环境。虽然设置了CONDA_CHANGEPS1=false,但这个变量只是控制是否在提示符中显示环境名称——不过看起来你的环境还是显示了,可能是因为后续的配置覆盖了这个设置,或者Anaconda2的这个版本存在小的行为差异,但这都不影响功能。
如何去除终端的(base)标识?
如果你不想每次打开终端都自动激活base环境,可以通过以下两种方法解决:
方法一:修改conda全局配置(推荐)
在终端中执行这条命令,关闭自动激活默认环境的功能:conda config --set auto_activate_base false执行后,下次打开终端就不会自动激活base环境,提示符里的
(base)就会消失。如果之后需要使用base环境,手动执行conda activate base即可。方法二:修改初始化脚本
打开你的.bash_profile文件,找到这段代码:. "/Users/admin/anaconda2/etc/profile.d/conda.sh" CONDA_CHANGEPS1=false conda activate base删除第二行的
conda activate base,保存文件后执行source ~/.bash_profile让修改生效。不过这种方法不推荐,因为后续如果重新运行conda init,这段代码可能会被重新添加回去。
补充说明
你通过两种方式安装TensorFlow的操作本身没有问题,(base)标识的出现和TensorFlow安装无关——即使你没装TensorFlow,只要Anaconda完成初始化,终端也会显示这个标识。所以完全不用担心是安装错误,也不需要重装Anaconda。
内容的提问来源于stack exchange,提问作者searain

