Maya python 子进程错误

maya python subprocess error

in python 2.7 我尝试使用此代码从 Deadline 软件获取数据。它 return 来自服务器的一些数据...

import subprocess
path = 'C:/Program Files/Thinkbox/Deadline7/bin/'
p1 = subprocess.Popen([path + 'deadlinecommand.exe', 'pools'], stdout=subprocess.PIPE)
p1.communicate()

并查看结果:

('none\r\npool_01\r\npool_02\r\npool_03\r\npool_04\r\npool_05\r\npoolhalf\r\n', None)

但是当我在 Maya 2014 中将该代码复制到 python 时出现错误:

p1 = subprocess.Popen(['path + 'deadlinecommand.exe', 'pools'], stdout=subprocess.PIPE)
# Error: WindowsError: file C:\PROGRA~1\Autodesk\maya2014\bin\python27.zip\subprocess.py line 826: 6 # 

运行 这个exe文件-是dedline通讯的唯一选择。但它对 stdout 数据以及如何退出是有必要的。 subprocess options 除了我没有找到,但如果有其他选项将很乐意尝试它们

还有其他人遇到过这个问题吗?奇怪的是,在 Python 2.7 运行ning 中 windows 一切正常,没有 Maya 2014

我使用:

Windows 7 + Python 2.7.9

玛雅 2014 (Python 2.7.3)

几天前我只是在尝试类似的东西,通过命令行提交器连接到 Deadline 并获得

 # File "C:\Program Files\Autodesk\Maya2013\bin\python26.zip\subprocess.py", line 786, in _make_inheritable
 # WindowsError: [Error 6] The handle is invalid

Maya 2013.5 中的错误。找到的一种解决方法 here 确实解决了此问题,即通过管道传输所有句柄

p1 = subprocess.Popen([path + 'deadlinecommand.exe', 'pools'], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE)

希望对您有所帮助。