【问题标题】:Usage of submodules without import gives error在没有导入的情况下使用子模块会出错
【发布时间】:2022-01-16 21:03:05
【问题描述】:

这可能不是最好的 MWE,但我不确定这是否是一个特定问题,或者我只是不了解基本知识。这有效:

import matplotlib as mpl
import matplotlib.backends.backend_tkcairo as tkcairo
fig = mpl.figure.Figure()
canvas = tkcairo.FigureCanvasTkCairo(fig)

我认为这也应该有效:

import matplotlib as mpl
fig = mpl.figure.Figure()
canvas = mpl.backends.backend_tkcairo.FigureCanvasTkCairo(fig)

但它没有(模块'matplotlib'没有属性'figure')。为什么这不起作用,为什么与 mpl.figure.Figure() 相关的错误在两个 MWE 之间没有区别?

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    matplotlib 不会自动导入子模块figure 或子模块backends,但backends.backend_tkcairo 会导入figure

    仅仅导入一个模块并不一定意味着所有子模块都会随之而来。这取决于这些是如何编写的。

    在这种情况下,最好明确导入您需要的子模块。

    【讨论】:

      猜你喜欢
      • 2018-11-10
      • 2021-04-22
      • 2011-02-08
      • 2017-12-02
      • 1970-01-01
      • 2018-09-21
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多