导入matplotlib报错:无法导入‘_path’,求助解决方法
解决
ImportError: cannot import name '_path'的排查步骤 我之前帮人处理过一模一样的报错,给你几个针对性的方案,按顺序试应该能搞定:
1. 彻底清理旧的matplotlib残留(最常见原因)
很多时候重装没解决,是因为旧的损坏文件或缓存没清干净:
- 先彻底卸载matplotlib:
如果用conda管理环境,也要同步卸载:pip uninstall -y matplotlibconda remove --force matplotlib - 手动删除Python site-packages里的matplotlib残留文件夹:
- Windows路径大概是:
C:\Python36\Lib\site-packages(如果是虚拟环境,就找虚拟环境下的Lib\site-packages),删掉所有带matplotlib、mpl_toolkits的文件夹 - Linux/macOS路径大概是:
/usr/local/lib/python3.6/site-packages或虚拟环境的对应目录,同样删除相关文件夹
- Windows路径大概是:
- 清理pip缓存,避免安装损坏的包:
pip cache purge - 关键:安装Python3.6兼容的matplotlib版本(最新版matplotlib已经不支持Python3.6了,这大概率是你报错的核心原因):
pip install matplotlib==3.3.4
2. 检查虚拟环境冲突
如果用了虚拟环境,很可能系统Python和虚拟环境的包搞混了:
- 先确认当前使用的Python路径:
- Windows:
where python - Linux/macOS:
which python
- Windows:
- 如果是虚拟环境,先激活环境再执行上面的卸载重装步骤,确保操作的是当前环境的包
- 尽量不要用管理员权限(sudo/右键管理员)装包,容易污染系统Python的依赖
3. 修复依赖包损坏问题
_path模块的导入失败,也可能是依赖的numpy等库损坏或版本不兼容:
- 先重装Python3.6兼容的numpy版本:
pip install numpy==1.19.5 - 然后再重新安装指定版本的matplotlib:
pip install matplotlib==3.3.4
4. 彻底修复Python安装(万不得已的最后一步)
如果上面都没用,可能是Python3.6的安装本身有残留问题:
- 卸载Python3.6后,手动删除所有残留目录:
- Windows:删除
C:\Python36安装目录,以及C:\Users\<你的用户名>\AppData\Local\Programs\Python\Python36、C:\Users\<你的用户名>\AppData\Roaming\Python\Python36 - Linux/macOS:删除
/usr/local/bin/python3.6等相关文件和目录
- Windows:删除
- 重新下载Python3.6的官方安装包(注意匹配你的系统位数),安装时务必勾选「Add Python to PATH」,自定义安装时确保勾选pip
- 安装完成后先升级到Python3.6兼容的pip版本(最新pip已经不支持3.6):
python -m pip install --upgrade pip==21.3.1 - 最后再安装matplotlib==3.3.4
验证解决方案
完成上述步骤后,打开Python交互环境,输入:
import matplotlib.pyplot as plt plt.plot([1,2,3]) plt.show()
如果能正常弹出图表,就说明问题解决了。
内容的提问来源于stack exchange,提问作者user9356792




