Problem importing matplotlib.mlab and .pyplot in python 2.7 on Mac OSX 10.6
Question: 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?


Answer: 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(...)
    

