2011-08-23 77 views
4

我試圖繪製使用matplotlib直方圖在Python 2.7 OSX 10.6問題在Mac OSX進口matplotlib.mlab和.pyplot在Python 2.7 10.6

我覈實,我可以導入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 
>>> 

我做錯了什麼,我不能導入這些腳本嗎?

+0

一個相關的問題:如果我嘗試調用matplotlib.pyplot.hist()它不起作用,並給我一個AttributeError,說matplotlib沒有屬性'pyplot',但是這列在matplotlib文檔中。 –

回答

3

對於ImportError:似乎有架構不匹配。也許你已經安裝了一個32位版本的matplotlib,但是使用的是64位Python?以下shell命令打印什麼?

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(...) 
+0

我認爲你是對的。我仔細研究了一下,顯然我正在運行64位Python。您的問題的輸出是: '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/nxutils.so:具有2種體系結構的Mach-O通用二進制文件 /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/nxutils.so(用於架構ppc):\t Mach-O包ppc /Library/Frameworks/Python.framework/Versions/2.7 /lib/python2.7/site-packages/matplotlib/nxutils.so(對於體系結構i386):\t Mach-O bundle i386' –

+1

將python作爲32位運行的最佳選擇是?我將如何做到這一點? 我也試過尋找一個64位matplotlib,但似乎這樣做對於雪豹有點牽扯。 –