如何不新建环境将Anaconda的Python3.7升级到3.10版本?
现有Anaconda环境跨版本升级Python(3.7→3.10)操作指南
此前命令无法完成升级的原因
- 执行
conda install -c anaconda python时未指定目标版本,默认只会安装当前依赖约束下的最高适配版本,不会跨大版本升级到3.10分支。 - 执行
conda install python=3.10时使用conda默认经典依赖解析器,跨3个次版本做依赖适配计算效率极低,且默认策略优先保留已安装的旧版本包,很容易出现依赖无解的情况,最终卡数小时后升级失败。
操作步骤
- 备份现有环境包清单,避免升级异常无法回滚
# 导出conda安装包清单 conda list --explicit > conda_pkgs_backup.txt # 导出pip安装包清单 pip freeze > pip_pkgs_backup.txt - 优化conda依赖解析效率,解决长时间卡依赖检查的问题
# 升级base环境的conda到最新版本 conda update -n base conda -y # 安装libmamba高速依赖解析器,依赖计算速度比默认解析器快数十倍 conda install -n base conda-libmamba-solver -y # 设置libmamba为默认解析器 conda config --set solver libmamba - 激活需要升级的目标环境(不要在base环境操作),执行升级命令
加conda install python=3.10 --update-deps -y--update-deps参数会强制升级所有与Python3.10不兼容的已安装包,不会因为保留旧包出现依赖冲突,配合libmamba解析器通常5-10分钟即可完成全部计算和安装流程。 - 升级后校验修复
- 执行
python --version,输出为3.10.x即核心升级完成 - 若个别第三方库导入报错,单独执行
conda install --update-deps 报错库名即可完成版本适配 - 若存在pip安装的包缺失,执行
pip install -r pip_pkgs_backup.txt即可恢复
- 执行
注意事项
- 升级过程中不要强制中断终端进程,否则可能损坏现有环境,届时只能通过备份清单重建
- 升级完成后如果需要切回原有解析器,执行
conda config --set solver classic即可,不影响已完成的环境配置
内容的提问来源于stack exchange,提问作者Dibya Prakash Dash
相关产品推荐
相关产品推荐

