在Mac OSX 10.6上,Python 2.7导入matplotlib.mlab和.pyplot的问题

4 投票
1 回答
8482 浏览
提问于 2025-04-17 00:10

我正在尝试在OSX 10.6上使用Python 2.7的matplotlib绘制直方图。

我已经确认可以在Python中导入numpy、scipy和matplotlib。matplotlib网站上的一个示例脚本可以正常运行。

#!/usr/bin/env python
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt

但是,当我尝试导入mlab时却出现了错误。

Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib.mlab as mlab
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/mlab.py", line 151, in <module>
    import matplotlib.nxutils as nxutils
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/nxutils.so, 2): no suitable image found.  Did find:
    /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/nxutils.so: no matching architecture in universal wrapper
>>> 

我到底做错了什么,为什么无法像脚本那样导入这些库呢?

1 个回答

3

关于 ImportError 错误:这看起来是因为你的系统架构不匹配。可能你安装的是 32 位的 matplotlib,但你却在使用 64 位的 Python。你可以试试下面这个命令,看看输出是什么:

file /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/nxutils.so

关于 AttributeError 错误:你需要明确地导入 matplotlib.pyplot,仅仅导入 matplotlib 是不够的,它不会自动导入。最常用的别名方式是:

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

然后你就可以用 plt 这个名字来绘制你的直方图:

plt.hist(...)

撰写回答