近几年,Anaconda每年提供二次离线升级安装包,前二天,2023年的第一次安装包来了,就下载进行了更新安装。本以为一次平淡的操作而已,但是,还是碰到的“魔性”的一面。

卸载旧版Anaconda,再安装新版本

先说一下,我的机器是Win10操作系统,安装了Anaconda3-2022.10,Python版本升级到3.9.16。这次Anaconda中的Python实现了“大版本升级”,即由3.9升级到3.10 ,如果已经安装了比Anaconda3-2023.03旧的版本,需要把它卸载了,安装Anaconda3-2023.03才能实现升级,现在靠conda update是升级不到3.10的。当然你也 可以保留原安装,指定另一个目录安装Anaconda3-2023.03。由于我安装Anaconda只是用来学习,所以就卸载了Anaconda3-2022.10。

卸载、安装很顺利。安装后,Python 是3.10.9,Spyder是4.5.1,菜单中“Anaconda Navigator”、“Anaconda Powershell Prompt”、“Spyder”等6个快捷方式也在。

anaconda python3.7 anaconda python3.7升级3.10_conda

魔性一,Anaconda安装后首次更新变成Miniconda。

安装后,顺手“以管理员身份运行”方式打开了“Anaconda Powershell Prompt”,进行了更新…

(base) PS C:\windows\system32> conda update --all

看到提示中一长串的包下载、包移除清单,非常多,“所谓更新不就这样吗”,没仔细看就按回车同意了。更新结束,菜单栏只剩下三个快捷方式:

anaconda python3.7 anaconda python3.7升级3.10_conda_02


“Jupyter Notebook”、“Spyder”快捷方式不见。进入“Anaconda Navigator”,原来默认安装的三个运用,处于未安装状态。(差不多是 执行了conda uninstall spyder)

anaconda python3.7 anaconda python3.7升级3.10_python_03

(base) PS C:\WINDOWS\system32> conda update anaconda

PackageNotInstalledError: Package is not installed in prefix.
  prefix: C:\ProgramData\anaconda3
  package name: anaconda

anaconda包居然丢了。
那么,重新安装一下:

(base) PS C:\WINDOWS\system32> conda install anaconda

点开“开始”,菜单栏中丢的几个快捷方式又回来了。
再一次执行更新 conda update --all

(base) PS C:\WINDOWS\system32> conda update --all
Collecting package metadata (current_repodata.json): done
Solving environment: done

# All requested packages already installed.

(base) PS C:\WINDOWS\system32>

这次不折腾了。

魔性二,存在base环境与anaconda环境?

anaconda python3.7 anaconda python3.7升级3.10_python_04

然而并没有。

(base) PS C:\Users\Administrator> conda env list
# conda environments:
#
                         C:\ProgramData\Anaconda3
base                  *  C:\ProgramData\anaconda3

魔性三 Spyder依赖关系中,某些可选模块需要手动安装

anaconda python3.7 anaconda python3.7升级3.10_快捷方式_05


手动安装缺失的可选模块

conda install cython

anaconda python3.7 anaconda python3.7升级3.10_快捷方式_06


(PS:在Win11下又安装了一次,这些“魔性”一样存在。Anaconda3-2023.03安装成功后,首次conda update --all 操作,将删除spyder及其必选依赖包与已安装的可选依赖包,Anaconsa差不多变成了Miniconda)