我正在尝试将blender作为后台进程运行。我有一个脚本,可以在blender中进行一些格式转换。
blender --background --python /home/WebRendering/scripts/blender_convertToObj.py -i tempForObjGeneration.iv.wrl -o ObjForAR.obj
如果我复制粘贴此行,因为它在终端中,脚本运行,我得到所需的输出。但是当我尝试使用子进程模块从python脚本中运行它时,我收到此错误
subprocess.call(blender --background --python /home/scripts/blender_convertToObj.py -i tempForObjGeneration.iv.wrl -o ObjForAR.obj, shell = True)
Fatal Python error: Py_Initialize: Unable to get the locale encoding
Color management: using fallback mode for management
Read new prefs: /home/user/.config/blender/2.69/config/userpref.blend
File "/usr/lib/python2.7/encodings/__init__.py", line 123
raise CodecRegistryError, \
^
SyntaxError: invalid syntax
Aborted (core dumped)
如果我在子进程调用中使用shell = False,我会得到以下错误
File "/usr/lib/python2.7/subprocess.py", line 522, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
任何想法,可能是错误的原因是什么? 另外,直接在终端中运行脚本和通过子进程运行脚本有什么区别?
Blender版本 - 2.69 Python版本 - 2.7