2013-03-29 34 views
2

我試圖從matplotlib導入模塊pyplot時發現了一個非常奇怪的行爲。首先它說它不存在,但是在導入pylab(另一個matplotlib模塊)後,它突然生效!奇怪的matplotlib.pyplot輸入

>>> import matplotlib 
>>> matplotlib.__version__ 
'1.2.1' 
>>> matplotlib.pyplot 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'module' object has no attribute 'pyplot' 
>>> import pylab 
>>> matplotlib.pyplot 
<module 'matplotlib.pyplot' from '/Library/Python/2.7/site-packages/matplotlib/pyplot.pyc'> 

其他人在他/她的電腦中有這種行爲?


**這發生在OS X山獅,運行的Python 2.7。我安裝matplotlibpip

回答

4

通常,要訪問包中的模塊,必須導入該模塊。您不能只導入包並使用點語法訪問該模塊。只要做from matplotlib import pyplot(或import matplotlib.pyplot,如果你真的喜歡打字點)。

其導入pylab後工作的原因是pylab進口pyplot,之後pyplot可作爲封閉包matplotlib的屬性。

基本上,如果你做import package,你不能指望你能做到package.module。但如果你做import packagefrom package import module,那麼你可以做package.module

+0

那麼,這回答了一切。謝謝你,先生(現在,讓我們等待9分鐘......) – juliomalegria