繁体   English   中英

在没有导入的情况下使用子模块会出错

[英]Usage of submodules without import gives error

这可能不是最好的 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 之间没有区别?

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

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

在这种情况下,最好显式地导入您需要的子模块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM