我有下面的代码,超时设置为60秒
p = subprocess.Popen(['ocamlopt', file], \
stdout=subprocess.PIPE, \
stderr=subprocess.PIPE, \
timeout=TIMEOUT_ECAML, \
)
我不明白为什么我收到的错误消息
^{pr2}$我用相同的错误查看了this previous post,但是另一个用户在我使用subprocess.Popen()
时使用了subprocess.call()
,所以我很困惑为什么会发生这种情况。在
同样的原因。没有超时参数。在
Popen
的所有有效参数的列表:https://docs.python.org/3/library/subprocess.html#subprocess.Popen{cda}中的{cda}没有参数
https://docs.python.org/2/library/subprocess.html#subprocess.Popen
当您实际通信时,您可以传递
timeout
参数:https://docs.python.org/3/library/subprocess.html#subprocess.Popen.communicate
call()
阻塞,直到命令结束或超时。Popen()
不等待命令完成;它立即返回,因此不接受timeout
参数。您可以将timeout
传递给wait()
或communicate()
方法,这些方法会一直等到进程完成或超时。在相关问题 更多 >
编程相关推荐