2016-10-28 28 views
0

我有一个超时下面的代码设置为60秒蟒蛇__init __()得到了一个意想不到的关键字参数“超时”

p = subprocess.Popen(['ocamlopt', file], \ 
        stdout=subprocess.PIPE, \ 
        stderr=subprocess.PIPE, \ 
        timeout=TIMEOUT_ECAML, \ 
        ) 

我不明白为什么我收到的

错误信息
__init__() got an unexpected keyword argument 'timeout' 

我已经调查this previous post具有相同的错误,但是当我使用subprocess.Popen()所以我很困惑,为什么这种情况正在发生的其他用户使用subprocess.call()

回答

0

其他用户使用subprocess.call()而我使用subprocess.Popen()所以我很困惑为什么会发生这种情况。

call()块直到命令结束或发生超时。 Popen()不等待命令完成;它立即返回,因此它不接受timeout参数。您可以将timeout传递给wait()communicate()方法,这些方法会一直等到进程结束或超时发生。

相关问题