我目前正在练习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。然而,我自己运行它,./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 64bit 内置python 2.7

Numpy, scipy, matplotlib安装:

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

当前回答

如果你在使用venv和运行pytest时遇到了这个错误ModuleNotFoundError:没有名为“matplotlib”的模块,你可以通过比较pytest显示的路径类型和python显示的路径类型来检查。在我的情况下,pytest不像python那样在venv/bin目录下,我通过pip安装了pytest并重新激活了venv。参见https://stackoverflow.com/a/54597424/3622415

其他回答

我已经使用pip和conda安装了matplotlib,但遇到了这个错误ModuleNotFoundError:没有名为“matplotlib”的模块。

我通过跟随来修正。

因为它可能有一个旧版本的Jupyter笔记本电脑,所以我尝试这个命令安装在当前的内核。

import sys
!{sys.executable} -m pip install seaborn

在新Jupyter版本(2019)中,可以简单地安装为:

%pip install matplotlib

您的机器上安装了两个python,一个是Mac OSX附带的标准python,第二个是您安装了端口的python(这是一个在其库中安装了matplotlib的python, macosx附带的python没有)。

/usr/bin/python

是标准的mac python,因为它没有matplotlib,你应该总是用一个安装了端口的脚本启动。

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

#!/usr/bin/env python

或者将完整路径放到库中安装了matplotlib的python解释器。

我的虚拟环境目录和项目目录上的文件权限不正确,因此不允许我安装正确的包。我通过运行:

sudo chown user:user -R [project folder]
sudo chown user:user -R [environment folder]

在上面,你应该用你自己的用户名来代替“user”。-R递归遍历所有子文件夹和文件。

所以我使用python3 -m pip安装matplotlib,然后导入matplotlib。Pyplot作为PLT,它成功了。

正常提要中的注释被阻塞。我来写一下为什么会这样,就像你执行你的应用程序一样。

如果您在安装脚本的环境之外的其他环境中运行脚本、python或ipython,则会遇到这些问题。

不要混淆重新安装它。Matplotlib通常安装在用户环境中,而不是sudo中。你在改变环境。

因此,不要重新安装pip,只要确保在sudo环境中安装pip时以sudo的方式运行即可。