Blender Python - 在导入所有模块时强制重新加载模块 类

Blender Python - Force reload of module while importing all its classes

我在Python/Blender开发,这里有两个需求:

  1. 从我的模块中导入所有个体 类(因为它们每个都必须在 blender 中注册)
  2. 每次执行脚本时重新加载模块本身(以防止在我开发插件时缓存并按“重新加载脚本”)

目前我正在这样做(__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