我以这样的方式导入了 matplotlib:

import matplotlib as mpl

当我运行以下代码时,抛出了一个错误,指出 'module' object has no attribute 'pylab' 被抛出:
x = np.arange(0,10,0.01)   # import numpy as np
y = np.sin(x)
mpl.pylab.plot(x,y)
mpl.pylab.show()

当我以另一种方式导入 matplotlib 时没有出现错误:
import matplotlib.pylab as pl

有没有人知道发生了什么?

最佳答案

默认情况下并不总是导入子模块。您可以导入 pylab

import matplotlib as mpl
import matplotlib.pylab  # Loads the pylab submodule as well
# mpl.pylab is now defined

这就是为什么做 import matplotlib.pylab as pl 为你解决了这个问题。

默认情况下不导入子模块会带来更快的加载时间。它也不会用未使用的子模块名称污染主模块命名空间。模块的创建者可以定义默认加载哪些子模块(因为 pylab 非常重,默认情况下不会被 matplotlib 导入)。

关于python - 为什么 matplotlib 没有属性 'pylab' ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5698442/

10-12 23:24