已安装Anaconda3(Python3)后如何将Python2设为默认Python
首先得明确你之前修改没生效的原因:你的.bashrc里的conda初始化脚本是成功执行的(conda init的hook命令返回值为0),所以代码走的是eval "$__conda_setup"分支,而你修改的export PATH="$PATH:/home/xy/anaconda3/bin"属于else分支,根本没被运行,自然不会有效果。
下面给你几个可行的解决方案,按需选择:
方案1:临时切换(单次终端会话生效)
如果只是偶尔需要Python2作为默认,直接在终端执行这条命令:
export PATH="/usr/bin:$PATH"
系统的/usr/bin目录(里面的python指向python2)会被放到PATH最前端,优先于Anaconda的路径,此时执行which python就会指向/usr/bin/python(即Python2)。
方案2:永久修改(不影响conda使用)
方法A:在conda初始化后追加PATH配置
打开.bashrc文件,在整个conda初始化代码块的末尾(也就是unset __conda_setup这一行之后)添加以下内容:
# 让系统Python2成为默认 export PATH="/usr/bin:$PATH"
保存文件后执行source ~/.bashrc生效。每次终端启动时,conda先把自身路径加到PATH前面,我们再把系统/usr/bin放到最前端,就能让Python2成为默认。需要用Anaconda的Python3时,直接激活base环境:conda activate base,此时PATH会再次把Anaconda路径前置,切换回Python3。
方法B:关闭conda自动激活base环境
如果平时很少用Anaconda的base环境,可以关闭它的自动激活功能,这样终端启动时不会自动把Anaconda路径加到PATH前面。执行这条命令:
conda config --set auto_activate_base false
重启终端后,which python就会指向/usr/bin/python(Python2)。需要使用Anaconda环境时,手动执行conda activate base或其他环境名即可切换到Python3。
验证效果
修改后可以执行以下命令确认:
which python # 应返回/usr/bin/python python --version # 应显示Python2.x版本
内容的提问来源于stack exchange,提问作者Emily

