Blender Python - 在导入所有模块时强制重新加载模块 类
Blender Python - Force reload of module while importing all its classes
我在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 is not defined”。
最初我尝试重新加载每个 类,但它引发了一个错误,即 reload
需要一个模块。
一些同事帮我解答了,结果在__init__.py
中是这样的:
from importlib import reload
if "MyModule" in locals():
reload(MyModule)
else:
import MyModule
from .MyModule import *
这里有详细说明:https://blenderartists.org/t/how-to-reload-add-on-code/1202715/2
我在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 is not defined”。
最初我尝试重新加载每个 类,但它引发了一个错误,即 reload
需要一个模块。
一些同事帮我解答了,结果在__init__.py
中是这样的:
from importlib import reload
if "MyModule" in locals():
reload(MyModule)
else:
import MyModule
from .MyModule import *
这里有详细说明:https://blenderartists.org/t/how-to-reload-add-on-code/1202715/2