You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Anaconda最新版本与Python及库兼容问题及回退至4.3.1求助

解决Matplotlib散点图报错及回退Anaconda旧版本的方法

我来帮你搞定这个问题,从你贴的报错信息来看:

TypeError: unhashable type: 'numpy.ndarray'
ValueError: ...(省略后续栈追踪)

核心是Matplotlib新版本和你旧代码的兼容性问题,同时我也会告诉你怎么回退到你原来的Anaconda 4.3.1 + Python 3.6.0环境。

先解决当前的Matplotlib报错

方案1:检查scatter函数的颜色参数

这个报错大概率是你调用scatter时传入的c(颜色)参数不符合新版本要求:

  • 如果你传的c二维numpy数组(比如形状是(n,3)的RGB数组),新版本Matplotlib对这类参数的处理逻辑有变化,你可以尝试直接把它转成一维数组:c=your_color_array.flatten(),或者确认是否是代码中误传了二维数组当一维颜色值用。
  • 另外,确保c的元素都是数值类型,不要包含字符串或其他非数值内容。

方案2:降级Matplotlib到兼容版本

如果是新版本Matplotlib的API变化导致的问题,你可以直接降级到和旧Anaconda配套的版本,打开Anaconda Prompt执行:

conda install matplotlib=2.0.0 numpy=1.11.3

这两个版本是Anaconda 4.3.1默认带的,和你的旧代码兼容性拉满。

方案3:创建独立的旧版本环境(推荐)

不想动当前环境的话,可以新建一个完全复刻旧配置的虚拟环境:

conda create -n py36_old_env python=3.6.0 anaconda=4.3.1

创建好后激活环境(Windows系统用下面的命令,Linux/macOS把activate换成source activate):

activate py36_old_env

之后在这个环境里运行Jupyter或Spyder,你的旧代码应该就能正常跑了。

彻底回退到Anaconda 4.3.1 + Python 3.6.0

如果你想完全换回旧版本的Anaconda,按以下步骤来:

  1. 彻底卸载当前Anaconda

    • 关掉所有Anaconda相关的程序(Jupyter、Spyder、Anaconda Prompt等)
    • 删除Anaconda的安装目录(比如你这里的D:\Software\AnacondaDistribution\Anaconda
    • 打开系统环境变量设置,删掉PATH里所有和Anaconda有关的条目
    • 去用户目录(比如C:\Users\你的用户名)删掉隐藏的.conda.anacondaconda文件夹(需要先显示隐藏文件)
  2. 下载旧版本安装包
    去Anaconda官方的归档页面找「Anaconda 4.3.1 Windows 64-bit」的安装包,这个版本对应的就是Python 3.6.0。

  3. 安装旧版本

    • 运行安装包,选择自定义安装,记得勾选「Add Anaconda to my PATH environment variable」(方便后续调用)
    • 安装完成后打开Anaconda Prompt,输入以下命令验证:
      conda --version  # 应该显示4.3.1
      python --version  # 应该显示3.6.0
      

内容的提问来源于stack exchange,提问作者HSS

火山引擎 最新活动