我需要通过终端运行批处理渲染命令,并使用 mel 回调来运行 python 模块。
我正在使用的终端命令是这样的:
Render -preRender "python(\"import sys\nsys.path.append(\"/Volumes/raid/farm_script/\")\nfrom run_os import Farm\nFarm()\")" "/path/to/scene.mb";
本质上,转义字符串中的命令应该像这样读取:
import sys
sys.path.append("/Volumes/raid/farm_script/")
from run_os import Farm
Farm()
在 Maya 的脚本编辑器中,在 python 选项卡中运行上述命令会打印出数据。
在 mel 选项卡中运行完全相同的脚本,但包装在 python 函数中,也可以正常工作!
在位于下的“农场”类中/Volumes/raid/farm_scripts/run_os.py
,我有这个小小的脚本。
class Farm():
def __init__(self):
self.run()
def run(self, *args):
print "=== TEST ===\n"
我在脚本编辑器中看到了我的打印测试,但是在批处理渲染终端中使用 MEL 回调运行这个命令,给我留下了一个“意外的缩进错误”,经过严格的测试,我发现它来自,from run_os import Farm
所以我的问题是,为什么这一行会产生缩进错误,因为我使用的是(换行符)标志,所以根本没有缩进\n
,除非我严重错误!