从Python脚本运行blender时的CodecRegistryError

时间:2015-03-27 08:38:54

标签: python python-2.7 subprocess blender

我正在尝试将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

0 个答案:

没有答案