导入错误:没有名为matplotlib.pyplot的模块。

253

我目前正在练习 matplotlib。这是我练习的第一个示例。

#!/usr/bin/python

import matplotlib.pyplot as plt

radius = [1.0, 2.0, 3.0, 4.0]
area = [3.14159, 12.56636, 28.27431, 50.26544]

plt.plot(radius, area)
plt.show()

当我用 python ./plot_test.py 命令运行这个脚本时,图表会正确地显示出来。但是,如果我直接运行 ./plot_test.py,就会抛出以下错误:

Traceback (most recent call last):
  File "./plot_test.py", line 3, in <module>
    import matplotlib.pyplot as plt
ImportError: No module named matplotlib.pyplot

Python会在不同的位置查找matplotlib吗?

环境如下:

  • Mac OS X 10.8.4 64位
  • 内置python 2.7

numpy、scipy、matplotlib是这样安装的:

sudo port install py27-numpy py27-scipy py27-matplotlib \
py27-ipython +notebook py27-pandas py27-sympy py27-nose

尝试使用 #!/usr/bin/env python 代替。 - Uku Loskit
1
你使用pyenv安装了Python吗?如果是这样,你必须在.python-version中指定你正在使用哪个Python版本,并使用pip3。 - Eliethesaiyan
1
#!/usr/bin/env python 没有起作用,仍然出现相同的错误。 - NIMISHAN
21个回答

243

pip会让你的生活变得轻松!

步骤1:安装pip - 在Python控制台中输入pip,检查是否已经安装了pip。如果没有pip,请获取一个名为get-pip.py的Python脚本,可通过此处链接获取:https://pip.pypa.io/en/latest/installing.html 或直接从此处下载:https://bootstrap.pypa.io/get-pip.py(您可能需要使用“另存为”..)

步骤2:注意文件保存的位置并在命令提示符中更改到该目录。运行get-pip.py脚本以安装pip。您可以在cmd中输入以下带引号的行:"python .\get-pip.py"

步骤3:现在在cmd中键入:pip install matplotlib

这样就完成了。


39
好的,我会尽力进行翻译。题目中指定了图书馆已经安装。 - tashuhka
9
当前这个回答的点赞数过多。与其下载pip,因为他们(在macOS上)已经安装了macports,所以OP应该运行sudo port install pip。另外,为了让pip在现有设置之外更加有用,他们还应该运行sudo port install virtualenv,以获取本地Python“虚拟环境”(可能被称为python3-virtualenv)。然后,在设置并进入(激活)新的虚拟环境之后,在虚拟环境中运行pip install ...。最后,为了使所有这些都能正常工作,Python脚本仍然需要使用#!/usr/bin/env python来调用。 - michael
在Ubuntu上,我使用了 python ./get-pip.py --user 命令,这对我很有效。谢谢。 - LeleMarieC
1
感谢“pip install matplotlib”命令!非常有用!!节省了我的时间!!! - Dev
2
我必须在第三步运行python3 -m pip install matplotlib - Austin Jenkins
显示剩余2条评论

68

你的电脑上安装了两个Python版本,一个是随Mac OSX捆绑的标准Python,另一个是你使用端口安装的Python(这个版本中的库中包含matplotlib,而随macosx捆绑的那个版本则没有)。

/usr/bin/python

标准的Mac Python没有matplotlib,因此您应该始终使用Ports安装的Python启动脚本。

如果python your_script.py可以正常工作,则将#!更改为:

#!/usr/bin/env python

或者将安装了matplotlib库的Python解释器的完整路径放入其中。


4
能否再详细解释一下?我也遇到了同样的问题。 - Akash Kandpal
2
请问您能提供步骤吗?我也不太明白您的解释,因为我在我的 Mac 上遇到了同样的问题。 - bhaskar
当你的工作目录中有一个名为matplotlib.py的文件时,可能会发生这种情况。 - Abhishek Parikh
12
在Python3中,使用命令python3 -m pip install matplotlib单独安装matplotlib可以解决该错误。在Ubuntu 16.04上测试通过。 - vineeshvs

48
如果您正在使用Python 2,请直接运行。
sudo apt-get install python-matplotlib

获取 matplotlib 的最佳方式是:

pip install matplotlib

因为之前的方法可能会给你一个旧版本的 matplotlib


抱歉,我没有指定系统,我正在使用Debian,类似的系统也可以工作。 - k.biao
4
没问题,但问题陈述中指出: “环境是:Mac OS X 10.8.4 64位内置Python 2.7。” - Lanting
你可以在你的OS X中类似于“apt-get”的命令中搜索。 - k.biao
1
在Ubuntu上,您可以使用sudo apt-get install python-matplotlib来安装Python3的matplotlib。 - user2023370

44

受Sheetal Kaul的启发,这对我很有效。

pip uninstall matplotlib
python3 -m pip install matplotlib

当这个东西运行时,我知道它安装在错误的位置了:

python2.7
import matplotlib

30

使用pip3 install matplotlib安装matplotlib库。 默认情况下,pip会将这些包安装到2.7版本中,因为它是本机版本。 使用pip3可以使其专门针对Python 3进行安装,并确保您只有一个Python 3版本。


19

首先检查 Python 版本

对于 Python2:

sudo apt-get install python-matplotlib

对于Python3:

sudo apt-get install python3-matplotlib

如果Matplotlib的安装版本和Python的版本不匹配,您将会收到no-module-error错误,因为该版本没有对应的模块。


13

我使用了 python3 -m pip install matplotlib 命令,然后执行了 import matplotlib.pyplot as plt ,这样就可以正常运行了。


我能够成功运行,只需去掉“3”,例如“python -m pip install matplotlib”,非常感谢。 - Barbaros Özhan
我觉得这对我有用。谢谢。 - Sridhar Sarnobat
目前看来,似乎只有这一个在M1芯片的Mac上能正常工作。 - undefined

10

如果您正在使用Anaconda3

只需输入:

conda install -c conda-forge matplotlib

9

如果您已经安装了pip,并且已将Python配置到路径变量中,则只需在终端中运行此命令。

pip install matplotlib

7
你可以通过以下方式在Python 3中安装matplotlib软件包。
python3 -m pip install matplotlib --user

它对我有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接