2013-03-29 31 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