【发布时间】:2021-01-25 10:12:56
【问题描述】:
我正在开发一个有几个子模块的搅拌机插件
- A/__init__.py
|
|- B/__init__.py
在 A/init.py 我可以使用import A.B 来导入子模块 B 的内容,但我希望能够自动导入这些文件。有什么方法可以实现吗?
这个想法是我的插件用于实现几个 glTF 扩展。每个扩展都在自己的子模块中,glTF 导出器希望我返回一些类,每个扩展一个。
我不想手动导入每个扩展并将类添加到扩展列表中,而是希望自动发生
而不是
from A.B import B_extension
glTF2ExportUserExtensions = [A.B.B_extension]
我想要类似的东西
# A.submodules returns all the submodules and extension() returns the extension class. Im assuming each submodule have an extension() function
glTF2ExportUserExtensions = [A.submodules.extension()]
我需要返回一个类列表
【问题讨论】:
-
自动是什么意思?
-
我不必这样做
import A.B,但是当我在搅拌机中激活插件时它会自动导入。 -
那么您应该提供有关模块结构的更多信息或阅读有关该主题的一些教程。 F.I.
init.py应改为__init__.py。同样不清楚A是模块还是子模块的一部分。有没有更高层次的模块? 您想在哪里 导入子模块? 自动是什么意思? Python 无法猜测您要导入什么,您必须至少在一处指定导入。那么什么是自动的呢? -
你是对的,文件是
__init__.py,这是一个错字。我对问题进行了一些编辑。 Blender 正在导入一个模块。现在我希望 A 能够导入 B,它是 A 的子目录,其中包含另一个__init__.py文件。我正在考虑以某种方式迭代 A 的子目录