如何在已经运行的Blender中运行Python脚本?

6

通常,我会使用“blender -P script.py”运行Python脚本。在这种情况下,将启动一个新的Blender进程来执行脚本。现在我想做的是使用已经运行的Blender进程来运行脚本,而不是启动一个新的进程。

到目前为止,我还没有看到关于此问题的任何来源,这让我担心这种方法的实际可行性。

任何帮助都将不胜感激。

2个回答

3
Blender并不是为了从cli启动,然后在运行时继续接收更多的命令而设计的。但是它包括一个文本编辑器,可以打开文本文件并将文本块作为python脚本运行,它还包括一个python控制台,可用于在Blender运行时交互式地键入命令。您可能也会发现此插件很有用,因为它允许您在python控制台中运行文本块,这样您就可以得到一个包含变量的交互式会话,这些变量是在脚本执行结束时存在的。

有一个cli选项可以将blender作为python控制台运行blender --python-console - 当此控制台正在运行时,gui不会得到更新,因此您可以打开并执行多个脚本,然后当您退出控制台时,blender将更新其gui并允许交互使用,或者如果您以后台模式启动-b,则退出控制台时它将退出。


3
我的解决方案是通过控制台启动Blender,并使用一个包含while循环的Python脚本(blender --python script.py),该脚本创建一个服务器套接字来接收处理某些特定代码的请求。循环将防止Blender打开GUI,而套接字将在同一Blender进程中处理多个请求。

这很好,如果你想的话,可以使用类似 queue.Queue 的东西来保存命令,然后让blender轮询(每秒1次)并检查队列中是否有要执行的内容。然后你可以在用户界面上进行调试,并且它也可以很容易地在无头模式下工作。 - Chris Barry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接