使用Seaborn pairplot时触发NumPy相关AttributeError报错
报错根因
numpy.histogram_bin_edges 是NumPy 1.15版本才正式加入的API,出现这个属性不存在的报错,核心原因是你运行代码时实际加载的NumPy版本低于1.15,和你主观认为安装了最新版的判断存在偏差,常见诱因有三类:
- 设备上存在多个Python环境(系统Python、conda虚拟环境、venv虚拟环境共存),你执行包升级操作的环境,和运行seaborn代码的环境不是同一个
- 旧版本NumPy的残留文件没有被覆盖,升级操作未实际生效
- 代码运行的工作目录下存在命名为
numpy.py的自定义脚本、或命名为numpy的自定义文件夹,Python导入包时优先加载了本地的重名文件,没有读取到你安装的官方NumPy包
修复步骤
- 先定位实际加载的NumPy信息,在你运行seaborn绘图代码的同个脚本中,优先执行以下代码打印真实信息:
import numpy as np print("当前加载的NumPy版本:", np.__version__) print("当前加载的NumPy路径:", np.__file__)
- 如果打印的版本号低于1.15,可确认是环境版本不匹配问题
- 如果打印的路径指向你当前项目文件夹下的文件,可确认是本地文件重名冲突问题
- 按定位到的问题对应修复:
- 本地重名冲突:直接将自定义的
numpy.py文件、numpy文件夹重命名为其他非包名的名称,删除同目录下自动生成的__pycache__缓存文件夹,重启编辑器内核即可。 - 环境版本不匹配:先激活你运行代码所用的对应虚拟环境,再执行强制重装命令,不要跳过激活步骤直接全局装包:
pip环境执行:
conda环境执行:pip install --upgrade --force-reinstall numpyconda install -c conda-forge numpy>=1.15.0
- 本地重名冲突:直接将自定义的
内容的提问来源于stack exchange,提问作者algebroo
相关产品推荐
相关产品推荐

