必须先运行 conda update conda 更新 conda 本身,因其版本决定依赖解析、通道支持等底层能力;旧版(如 4.10 前)易报 unsatisfiableerror 或静默降级,更新后 conda update anaconda 才有效。

直接运行 conda update conda 就能更新 conda 本身,这是最稳妥、最推荐的方式。其他命令(比如 conda update anaconda 或 conda update --all)不保证 conda 工具本身升级,甚至可能跳过它。
为什么必须先更新 conda 再更新其他东西?
conda 是包管理器,它的版本决定了依赖解析能力、通道支持、锁文件行为等底层逻辑。旧版 conda(比如 4.10 之前)无法正确处理 2025 年后发布的很多新包约束,容易报 UnsatisfiableError 或静默降级到 anaconda=custom。更新 conda 后,conda update anaconda 才真正有意义。
- conda 4.12+ 开始默认启用
strict-channel-priority,老版本没这机制,换源后仍可能混用官方源 - conda 23.x 起对
environment.yml中的pip:段落支持更健壮,旧版会忽略或报错 - Windows 下 conda 22.9+ 修复了长路径和符号链接权限问题,此前更新失败常卡在
pkgs/目录重命名
更新时遇到 “Proceed ([y]/n)?” 怎么办
这是 conda 在确认是否要下载并替换已安装的包,不是警告也不是错误。输入 y 回车即可继续;如果卡住不动,可能是终端未聚焦或 Ctrl+S 暂停了输出(按 Ctrl+Q 恢复)。
- 别输
yes—— 只认单字母y或n - 如果提示 “The following packages will be DOWNGRADED”,说明当前环境有硬约束(如某包指定了
=2.1.0),conda 为满足依赖选择降级 conda 自身 —— 这种情况应优先检查conda list conda输出的当前版本,再决定是否强制保留 - 升级过程中断(如网络闪断)后,再次运行
conda update conda会自动续传,无需手动清理
更新失败常见原因和对应操作
典型失败现象是卡在 “Fetching package metadata…” 或报 CondaHTTPError: HTTP 000 CONNECTION FAILED,本质是连接不到默认源。
- 先试
conda config --show channels看是否已配置国内镜像;没配就立刻加清华源:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ - 若已配源仍失败,大概率是 SSL 验证失败(尤其企业内网或 macOS 14+),临时关闭验证:
conda config --set ssl_verify false(完事后记得true回去) - 极少数情况是
~/.condarc文件语法错误(比如多了一个冒号或缩进不对),删掉重生成:conda config --remove-key channels && conda config --add channels defaults - Windows 用户若用普通 CMD 而非 Anaconda Prompt,可能因 PATH 中存在旧版 conda 导致命令冲突 —— 务必用 Anaconda Prompt 或以管理员身份运行
真正麻烦的不是“怎么更新”,而是更新后 conda 报出一堆 PackageNotInstalledError —— 这往往意味着你之前用 pip install 装过某些包,conda 不知道它们的存在,升级时把它当“孤儿”删了。这种情况下,别急着重装,先 conda list --revisions 查看历史快照,用 conda install --revision N 回退更安全。











