我如何告诉搅拌机赶上我在自己的 python 模块中所做的更改?
How can I tell blender to catch up changes I made in an own python module?
我在首选项中设置了一个脚本文件夹,在该文件夹下我创建了一个 modules
目录,其中包含一个文件 my_module.py
。
在 blender 的文本编辑器中,我使用
导入它
from my_module import *
到目前为止一切正常。
但是,每当我对 my_module.py
进行更改时,我在外部编辑器中进行更改以获得完全的灵活性,我必须退出搅拌机并重新启动它以使更改生效。
有什么方法可以告诉 blender 它检测到我导入的模块中的更改,这样我就不必一直退出并重新启动?
假设这是 Python3:
您可以使用 importlib
库中的 reload
方法。
from importlib import reload
reload(my_module)
这将重新加载模块的内容。但是这样一来,您就无法像导入模块那样导入,也就是说,您将无法做到 from my_module import *
。您将必须像 import my_module
一样导入您的模块,稍后您可以通过 reload(my_module)
来重新加载它。以防重复输入模块名称造成不便,记住 Tab 键是补全的好帮手
在 Python2 的情况下,reload() 方法已经存在,您不需要 from importlib import reload
我在首选项中设置了一个脚本文件夹,在该文件夹下我创建了一个 modules
目录,其中包含一个文件 my_module.py
。
在 blender 的文本编辑器中,我使用
导入它from my_module import *
到目前为止一切正常。
但是,每当我对 my_module.py
进行更改时,我在外部编辑器中进行更改以获得完全的灵活性,我必须退出搅拌机并重新启动它以使更改生效。
有什么方法可以告诉 blender 它检测到我导入的模块中的更改,这样我就不必一直退出并重新启动?
假设这是 Python3:
您可以使用 importlib
库中的 reload
方法。
from importlib import reload
reload(my_module)
这将重新加载模块的内容。但是这样一来,您就无法像导入模块那样导入,也就是说,您将无法做到 from my_module import *
。您将必须像 import my_module
一样导入您的模块,稍后您可以通过 reload(my_module)
来重新加载它。以防重复输入模块名称造成不便,记住 Tab 键是补全的好帮手
在 Python2 的情况下,reload() 方法已经存在,您不需要 from importlib import reload