必须先升级conda自身并配置国内镜像源,否则conda update --all易因solver算法缺陷或元数据不兼容而失败;它仅更新conda安装的包,不处理pip安装或editable包,且依赖channel优先级与缓存一致性。

直接结论:用 conda update --all 升级所有包,但必须先升级 conda 自身,并换国内镜像源,否则大概率卡住或失败。
为什么不能跳过 conda update conda
Conda 是包管理器本身,旧版本(尤其是 conda < 23.0)对新包依赖解析能力弱,容易在 update --all 过程中报 UnsatisfiableError 或无限 hang 住。这不是网络问题,是 solver 算法不支持当前仓库元数据格式。
实操建议:
- 务必先运行
conda update conda,再执行后续操作 - 如果提示权限错误(Windows),右键 Anaconda Prompt → “以管理员身份运行”
- 升级后检查版本:
conda --version应 ≥ 24.5.0(2026 年主流稳定版)
conda update --all 实际会更新什么
它不是“所有 Python 包”,而是当前激活环境中、由 conda 安装且未被 pip 覆盖的包。常见例外:
- 用
pip install装的包(如transformers)默认不参与--all更新 - 通过
pip install --editable安装的本地开发包会被跳过 - 某些带
noarch标签的包(如black)可能因 channel 优先级被忽略 - 若环境里混用了
pip和conda,--all可能降级部分包来满足依赖约束
国内镜像源必须配,且顺序不能错
清华源已从 pkgs/free 归档,当前有效地址只有 pkgs/main 和 pkgs/conda-forge。错误配置会导致部分包(如 pytorch)无法解析版本。
正确命令(逐行执行):
conda config --remove-key channels conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/contrib/ conda config --set show_channel_urls yes
验证是否生效:conda config --show channels 应显示上述 URL,且 main 在最前。
更新中途中断或失败怎么办
Conda 不支持断点续传,强行 Ctrl+C 后状态可能损坏。别急着重试:
- 先运行
conda clean --all -y清理缓存和未完成下载 - 再用
conda list --revisions查看历史快照,必要时回退:conda install --revision N - 若反复失败,改用
conda update --all --dry-run预览冲突包,手动跳过问题包(如conda update numpy pandas) - 绝对避免在更新过程中打开 Jupyter 或 Spyder —— 它们会锁住某些 .dll/.so 文件,导致 Windows 下更新报错
真正麻烦的不是命令输错,而是把 conda update --all 当成黑盒操作:它依赖 solver 的约束求解能力、channel 元数据完整性、以及本地 cache 的一致性。任何一个环节出问题,都会表现为“卡住”或“降级一堆包”。所以每次更新前花 2 分钟确认 conda 版本和源配置,比等半小时失败后再重来强得多。

















