很多人想关掉 Anaconda 启动时自动出现的 (base),核心诉求通常有两个:终端更干净,启动时少一点额外加载。现在 Conda 已经提供了官方且风险最低的做法,关键不是“怎么删掉 base”,而是分清哪些改法只是关闭自动激活,哪些改法会把 conda 命令本身也一起弄坏。下面按常见场景拆开讲,并补上恢复方法和容易踩坑的地方。
唯一推荐的做法:关闭 auto_activate_base
如果你的目标只是让新终端不要自动进入 base,直接关闭 auto_activate_base 就够了。这是 Conda 官方支持的配置方式,也是目前最安全的一种,不会去改环境路径,也不会破坏初始化逻辑。

conda config --set auto_activate_base false
这条命令会写入用户级配置文件 ~/.condarc;在 Windows 上,对应位置是 %USERPROFILE%.condarc。它只影响当前用户的自动激活行为,不会删除环境,也不会让 conda 失效。
- 执行后重新打开终端,通常就不会再看到
(base) conda命令仍然可以正常使用- 需要临时进入 base 时,手动执行
conda activate base即可 - 如果之后想恢复自动激活,把配置改回
true,或者删除这一项即可
这里还有一个容易忽略的限制:这条命令应当在终端里执行,而不是在 Jupyter 或 Python 脚本里调用。它本质上改的是 Conda 的 shell 行为配置,不是某段 Python 代码的运行参数。
PowerShell 仍有报错时,优先检查 $PROFILE 残留
有些用户在关闭 auto_activate_base 之后,PowerShell 启动时还是会报错,或者看起来仍然在加载 Conda。常见原因不是配置没有生效,而是早期手动改过 PowerShell 启动脚本,里面还留着 Conda 的初始化代码。

这类残留会让 PowerShell 启动时继续执行 shell hook,某些情况下还会把 RequestsDependencyWarning 之类的警告反复带出来。也就是说,你关掉了“自动进入 base”,但没有关掉“启动时加载 Conda 相关代码”。
- 先查看配置文件路径:
$PROFILE - 常见位置通常是
$HOMEDocumentsPowerShellMicrosoft.PowerShell_profile.ps1 - 打开后,检查并删除包含
conda.sh、conda init或conda activate的相关行 - 修改完成后,重启 PowerShell,或者执行
. $PROFILE重新加载
这里尤其不要直接运行下面这条命令:
conda init --reverse powershell
它看起来像是在“彻底撤销初始化”,但在很多实际环境里会把 conda 命令本身也一起搞没,结果从“自动激活烦人”变成“命令直接不能用”。如果你的目标只是停止启动时自动加载,清理 $PROFILE 里的残留代码更稳妥。
想默认进入自定义环境,别改 PATH,改 shell 配置
还有一种需求并不是“完全不要自动激活任何环境”,而是“不要进 base,但希望终端打开后直接进入自己的开发环境”。在 Linux 或 macOS 上,这种情况最好单独处理,不要通过改 PATH 来硬切解释器。

更可靠的方式,是先关闭 base 自动激活,再在 shell 配置文件末尾追加你自己的环境激活命令。例如:
- 编辑
~/.bashrc或~/.zshrc - 在文件最后加入:
conda activate myenv - 保存后执行
source ~/.bashrc使配置生效
这样做的好处是,环境切换仍然经过 Conda 自己的管理逻辑,包隔离、解释器路径和后续的 pip/conda 行为都更一致。
相反,下面这种思路不建议使用:
export PATH=...
直接改 PATH 去替换 Python 解释器路径,看起来像是“更直接”,实际是在绕过 Conda 的环境管理。后果通常不是立刻报错,而是后续出现更难排查的问题,例如:
pip和conda指向的环境不一致- 安装位置和运行解释器不一致
- 环境隔离被破坏,后面升级包时更容易冲突
如果你使用的是图形终端,比如 GNOME Terminal,还要额外确认它的启动方式是否会读取 shell 配置文件。有些终端只有在启用“以登录 shell 方式运行”后,~/.bashrc 或 ~/.zshrc 里的自动激活设置才会按预期执行。
关闭自动激活,不等于修复 base 环境问题
最后需要把一个边界讲清楚:禁用 auto_activate_base 解决的是“终端默认进入 base”以及一部分“启动过程额外加载”的问题,但它并不会自动修复 base 环境内部的依赖冲突。
如果你的 base 环境里本来就有 urllib3 和 requests 的版本冲突,那么相关警告依然可能在手动激活环境时出现。原因不是配置没关干净,而是 Conda 初始化或环境切换阶段仍可能涉及 base 的 Python 组件。
这种情况下,继续折腾自动激活配置意义不大,正确方向是进入 base 后处理依赖本身。换句话说,看到 (base) 只是表象;如果真正的问题是包版本冲突,就应该修包,而不是继续改 shell 配置。













