【发布时间】:2016-07-21 12:41:15
【问题描述】:
通常,我会使用“blender -P script.py”来运行 python 脚本。在这种情况下,将启动一个新的搅拌机进程来执行脚本。我现在要做的是使用已经在运行的搅拌机进程运行脚本,而不是启动一个新进程。
到目前为止,我还没有看到任何关于这个问题的消息来源,这让我担心这种方法的实际可行性。
任何帮助将不胜感激。
【问题讨论】:
通常,我会使用“blender -P script.py”来运行 python 脚本。在这种情况下,将启动一个新的搅拌机进程来执行脚本。我现在要做的是使用已经在运行的搅拌机进程运行脚本,而不是启动一个新进程。
到目前为止,我还没有看到任何关于这个问题的消息来源,这让我担心这种方法的实际可行性。
任何帮助将不胜感激。
【问题讨论】:
Blender 并非设计为从 cli 启动,然后在 cli 运行时不断接收来自 cli 的更多命令。但是,它确实包含一个text editor,可以打开文本文件并将文本块作为python脚本运行,它还包括一个python console,可用于在blender运行时交互式输入命令。您可能还会发现 this addon 很有用,因为它允许您在 python 控制台中运行文本块,这为您提供了一个交互式会话,其中包含在脚本执行结束时存在的变量。
有一个 cli option 可以将 blender 作为 python 控制台运行 blender --python-console - 此控制台运行时 gui 不会更新,因此您可以打开并执行多个脚本,然后当您退出控制台时,blender 将更新它的 gui 并允许交互式使用,或者如果你以后台模式启动 -b,那么它会在你退出控制台时退出。
【讨论】:
我的解决方案是通过控制台使用包含 while 循环的 python 脚本 (blender --python script.py) 启动 Blender,并创建一个服务器套接字来接收处理某些特定代码的请求。该循环将阻止搅拌机打开 GUI,并且套接字将处理同一个搅拌机进程内的多个请求。
【讨论】: