奇怪的matplotlib.pyplot输入

时间:2013-03-29 18:38:26

标签: python matplotlib

尝试从pyplot导入模块matplotlib时,我发现了一种非常奇怪的行为。首先它说它不存在,但是在导入pylab(另一个matplotlib模块)之后,它突然起作用了!

>>> 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'>

其他人在他/她的电脑中有这种行为吗?


** 这发生在运行Python 2.7的OS X Mountain Lion上。我使用matplotlib安装了pip

1 个答案:

答案 0 :(得分:4)

通常,要访问包中的模块,必须导入该模块。您不能只导入包并使用点语法访问模块。如果你真的喜欢打字点,只需from matplotlib import pyplot(或import matplotlib.pyplot。)

导入pylab后它起作用的原因是pylab导入pyplot,之后pyplot可用作封闭包matplotlib的属性。

基本上,如果你import package,你就不能指望你能package.moduleimport package。但是,如果您执行from package import module package.module,那么您可以执行{{1}}。