问题
I am trying to plot a histogram using matplotlib in Python 2.7 on OSX 10.6
I have verified that I can import numpy, scipy, and matplotlib into python. A sample script on the matplotlib website does
#!/usr/bin/env python
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
However, I get an error when doing this. Here is what happens when I try to import 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
>>>
What am I doing wrong that I can't import these as the script does?
回答1:
I think the best option is to use the Python you have. Instructions here.
回答2:
For the ImportError: It seems that there is an architecture mismatch. Maybe you have installed a 32-bit version of matplotlib, but are using a 64-bit Python? What does the following shell command print?
file /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/nxutils.so
For the AttributeError: You have to explicitely import matplotlib.pyplot
, it won't get imported automatically when just importing matplotlib
. The most common aliasing scheme is:
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
Then you can draw your histogram using the plt
name:
plt.hist(...)
来源:https://stackoverflow.com/questions/7157330/problem-importing-matplotlib-mlab-and-pyplot-in-python-2-7-on-mac-osx-10-6