为什么执行conda update --all命令时没有任何包需要更新?
问题原因
- 配套Python版本停止维护
你安装的2019版Anaconda base环境默认绑定低版本Python(通常为Python 3.7),当前conda官方源、conda-forge源已经停止为Python 3.7及更早版本提供绝大多数包的版本迭代更新。你认为旧版本应该有更多可更新包是误区:旧版本运行环境能兼容的包最高版本早已停止迭代,你当前安装的包版本已经是该环境下的最高可用版本,因此conda求解后提示无更新。 - 公司内网源限制
你使用公司设备,配置了自定义SSL证书,说明公司对公共conda源做了代理或镜像缓存,内部镜像大概率已经冻结了旧版本Anaconda配套依赖链的更新,不提供对应的升级包。 - 残留旧缓存或索引
卸载旧版本Anaconda时没有清理全局的conda缓存、旧包索引文件,重装后conda读取了旧的索引内容,没有拉取最新的包索引数据,导致识别不到可更新内容。 - conda本身版本过低
2019版Anaconda自带的conda版本较低,部分包的更新规则要求更高版本的conda才能识别,旧版conda无法匹配到对应更新。
解决方法
- 先清理conda缓存和旧索引,再尝试更新
依次执行以下命令:
# 清理所有缓存、旧索引和未使用的包 conda clean -a # 先更新conda本身到当前环境支持的最新版本 conda update conda -y # 再执行全量更新 conda update --all
- 调整channel优先级测试
如果执行后仍无更新,可临时调整channel优先级为灵活模式,允许conda从低优先级源拉取适配的更新包:
conda update --all --channel-priority flexible
- 手动指定包版本安装
如果还是无更新,说明当前源确实没有适配你环境的更新包,属于正常情况。如果确实需要更新特定包,可手动查询该包适配你当前Python版本的最高可用版本,指定安装:
conda install <包名>=<兼容版本号>
- 新建虚拟环境使用高版本依赖
不要跨大版本更新base环境的Python版本,避免破坏Anaconda基础依赖链导致环境不可用。如果需要使用更高版本的包,建议单独创建新的虚拟环境,在虚拟环境中安装高版本Python和对应依赖。
内容的提问来源于stack exchange,提问作者Jred
相关产品推荐
相关产品推荐

