2016-10-28 404 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()方法,這些方法會一直等到進程結束或超時發生。

相關問題