在 Python 中 import matplotlib 提示 matplotlib._path 错误的解决过程

前几天做一个简单的演示,用` pip install matplotlib ` 安装 Matplotlib 后,使用 ` import matplotlib `时,提示 ._path 错误。经过不懈努力,最终解决,与各位分享。

1. 问题描述

1.1 问题现象

1.1.1 出现问题的最初环境

正在搭建一个 Visual Studio Code + Python 的环境准备做一些演示工作。环境如下:

  • 通过 VS Code 官网 
    https://code.visualstudio.com/ 下载并安装 VS Code。
  • 通过 python.org 官网下载并安装 Python。
  • 在 VS Code 中安装 Python 扩展插件。
  • 在终端界面中使用 pip install matplotlib 安装 Matplotlib
  • 配置VS Code 选择解释器。

以上过程一切正常。编写 print("Hello World") 并运行正常。 

1.1.2 问题现象:

安装 matplotlib 显示一切正常。但是,一段简单的使用 matplotlib 的代码,却报如下错误:

ImportError: DLL load failed while importing _path: The specified module could not be found.

界面如下:

 错误提示中所述 transforms.py 第49行内容如下:

 

1.2 问题探索 -(不是如下原因,大家避坑)

猜测了多种可能,虚拟机安装了很多遍,发现如下不是导致问题的可能原因,帮助大家避坑:

  • 提示 _path 错误,以为是 环境变量 path 的问题。
    配置/设置环境变量、重新安装 Python 并选择加入环境变量、配置环境变量最长字符数等,没解决问题。
  • 以为是 Python 虚拟环境 的问题。
    重新配置虚拟环境,或者不使用虚拟环境,各种折腾,没解决问题。
  • 以为是 安装包不完整 的问题。
    这是网上给出的较多的原因。
    尝试 uninstall / install Numpy/Matplotlib,多次重装折腾,没解决问题。
    上加州大学下载 whl 安装包本地安装,没解决问题。(注意:到这里快了
  • 以为是 墙内不如墙外香 的问题。
    担心 pip 默认地址在墙外,可能丢部分内容。
    使用参数 -i 指向清华大学,没解决问题。
  • 也许 Anaconda 可以解决。
    一定可以的,要不然 Anaconda 是干嘛的。
    但本次测试就是想搭一个不用 conda 的纯环境。

以上用到的一些命令、参数等,将放到文末其他资源部分,供大家参考。

1.3 复现问题的最小环境

为了排除干扰,假设了一个可能的最小环境:

新安装的 Windows,新下载安装 Python,用 pip install matplotlib 安装 Matplotlib,在命令行中测试,结果如下:

 

2. 解决方案

2.1 根本原因

经过上述各种测试,以及查阅各种资料,最终觉得,原因是:

Python 版本与 Matplotlib 版本不一致所致

不要觉得安装了最新的Python,最新的 Matplotlib 及其自动装的 Numpy 就没有问题。

由此也知道了 Anaconda 的价值。当然本文犟在就不用 Anaconda ,想找找根本原因。

也就是说,您的Windows 版本 32bit/64bit、Python 版本、Numpy 版本、Matplotlib 版本,一定要一致。

2.2 解决过程

1. 上 Python.org 官网,下载特定的版本。我干脆下了 Python 3.11.1,3.11.0,3.10.0 的32位和64位备用。如图:

 

2. 上加州大学网站,下载特定版本的 Numpy 和 Matplotlib 的whl 文件。注意版本。如图:

图中只显示了 Matplotlib,请滚去 Numpy 做同样动作。

 3. 在命令行中,安装相应的东东。如下:

        1)  双击 “ python-3.10.0-amd64.exe ”,安装 Python 3.10.0 的 64位版本。当然你可以安装别的版本,但一定要和下面步骤的版本一致。

        2) 使用 “  pip install E:\MatplotlibPacks\numpy-1.22.4+mkl-cp310-cp310-win_amd64.whl ”, 本地安装下载好的相应版本的 Numpy。
注意 cp310 对应前面的Python3.10.0,amd64对应Python的64位。问题就在这里

        3) 使用 “  pip install E:\MatplotlibPacks\matplotlib-3.5.2-cp310-cp310-win_amd64.whl ”, 本地安装下载好的相应版本的 Matplotlib。注意版本。

界面如下:

 

4. 测试结果。命令行中,进入 Python,键入 import matplotlib,不再报错。如图:

 5. 玩一把 Matplotlib,键入如下代码,微笑起来

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-10,10,0.1)
y1 = x ** 2
y2 = (x/2)**2 + 75
plt.plot(x,y1)
plt.plot(x,y2)
plt.show()

结果如下:

2.3 结论

当出现 matplotlib._path 错误,或 matplotlib 的其他库/路径错误时,请记得检查并确保 Python、Numpy、Matplotlib 的版本必须一致。

3. 其他资源

本文用到/起作用或没起作用 的资源整理如下,供大家参考:

一些网站:

一些命令:

  • pip 指定特定镜像源:
    pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple 
  • pip 安装本地文件:
    pip install ~path\*.whl
  • pip 安装指定版本:
    pip install matplotlib==3.5.1

一些书:

学习 Python、Jupyter、Matplotlib 等知识,请参考笔者撰写 人民邮电出版社出版的《Jupyter入门与实战》。

学习 Visual Studio Code,请关注笔者后续资料。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值