导入matplotlib.animation时出现numpy.linalg无法导入inv的问题求助
解决“无法从'numpy.linalg'导入名称'inv'”的问题
问题重现
执行以下代码时触发错误:
import matplotlib.animation as animation
错误信息:
无法从'numpy.linalg'导入名称'inv'(未知位置)
已尝试重装numpy、scipy、matplotlib,环境依赖:
- torch=1.12.1
- numpy=1.23.4
- scipy=1.9.2
- networkx=2.8.7
- matplotlib=3.6.1
- dgl=0.5.1
解决方案
强制重装numpy,确保安装完整性
用pip强制覆盖重装指定版本:pip install --force-reinstall numpy==1.23.4如果使用conda环境:
conda install --force-reinstall numpy=1.23.4排查本地文件命名冲突
当前工作目录若存在numpy.py或linalg.py这类文件,会覆盖官方numpy库的导入逻辑。执行以下命令检查:- Linux/macOS:
ls | grep -E "(numpy|linalg)\.py" - Windows(命令提示符):
dir | findstr /i numpy.py linalg.py
若找到此类文件,立即重命名或删除。
- Linux/macOS:
验证numpy基础功能是否正常
先单独测试numpy的linalg模块,排除matplotlib的干扰:import numpy.linalg as la print(la.inv)如果这一步报错,说明问题根源在numpy本身,需重点排查numpy的安装或环境冲突。
调整numpy版本,解决依赖兼容问题
DGL 0.5.1发布时间较早,可能与numpy 1.23.4存在兼容问题。尝试降级numpy到torch 1.12.1兼容的稳定版本(如1.21.6):pip install numpy==1.21.6安装完成后重新测试导入语句。
清理Python缓存文件
删除当前目录下的__pycache__文件夹,以及site-packages中numpy相关的缓存文件,避免旧缓存导致的导入异常。
内容的提问来源于stack exchange,提问作者Bo Zhong
相关产品推荐
相关产品推荐

