【发布时间】:2021-11-21 18:11:55
【问题描述】:
我正在使用 Python/Blender 进行开发,这里有两个需求:
- 从我的模块中导入所有单独的类(因为它们都必须在 blender 中注册)
- 每次执行脚本时都重新加载模块本身(以防止在我开发插件时缓存并按“重新加载脚本”)
目前我正在这样做(__init__.py):
from importlib import reload
from .MyPlugin import *
reload(MyPlugin)
classes = [ClassA, ClassB, ClassC]
# register each class, not shown here
但是reload(MyPlugin) 行会导致错误:“MyPlugin 未定义”。
最初我尝试重新加载每个类,但它引发了reload 需要模块的错误。
【问题讨论】:
-
使用
import MyPlugin然后你可以重新加载它 -
@Jean-FrançoisFabre 是的,但是我怎样才能获得每个单独的课程?我试过
inspect.getmembers(MyModule, inspect.isclass),但列表返回空。模块中的类类似于class MyProperties(bpy.types.PropertyGroup): -
我无法重现,当我使用相同的函数和谓词检查模块时,我可以看到类
-
那一定是 Blender 执行上下文的问题。
标签: python python-3.x blender