Pydev 找不到 matplotlib 模块

1 投票
1 回答
3894 浏览
提问于 2025-04-16 03:03

我刚在我的 windows 7 Python 2.6.5 电脑 上用 win32 安装程序安装了 matplotlib。为了测试安装情况,我在 matplotlib 网站上试了一些例子。在 Idle 中一切都正常,但 Pydev 1.9 (Eclipse 3.6) 却找不到任何子模块。

比如说,import matplotlib 这个命令没有报错。

但是 from matplotlib.path import Path 就会报错:

ImportError: No module named path

我已经把 matplotlib 的路径添加到了 系统 PYTHONPATH 中,但我还需要做其他什么吗?

from pylab import *
import numpy as np
from matplotlib.transforms import Bbox
from matplotlib.path import Path
from matplotlib.patches import Rectangle

rect = Rectangle((-1, -1), 2, 2, facecolor="#aaaaaa")
gca().add_patch(rect)
bbox = Bbox.from_bounds(-1, -1, 2, 2)

for i in range(12):
    vertices = (np.random.random((4, 2)) - 0.5) * 6.0
    vertices = np.ma.masked_array(vertices, [[False, False], [True, True], [False, False], [False, False]])
    path = Path(vertices)
    if path.intersects_bbox(bbox):
        color = 'r'
    else:
        color = 'b'
    plot(vertices[:,0], vertices[:,1], color=color)

show()

Traceback (most recent call last):
  File "I:\My Documents\Programming\Python\Eclipse Projects\test\src\matplotlib.py", line 1, in <module>
    from pylab import *
  File "C:\Python26\lib\site-packages\pylab.py", line 1, in <module>
    from matplotlib.pylab import *
  File "I:\My Documents\Programming\Python\Eclipse Projects\test\src\matplotlib.py", line 3, in <module>
    from matplotlib.transforms import Bbox
ImportError: No module named transforms

1 个回答

4

看起来你的文件叫做 matplotlib.py。这就是为什么它不能正常工作的原因:当前目录总是会被放在系统路径的最前面,所以你的文件会被优先找到。因为你的文件里没有 transforms 这个子模块,所以导入时会失败。虽然 import matplotlib 这个命令可以正常工作,因为确实有一个叫 matplotlib 的模块,但那就是你自己创建的 matplotlib.py 文件。只需要把这个文件改个名字就可以了。

撰写回答