2012-03-16 56 views
1

我有一個命令,以從Python程序CANT運行與subprocess.Popen的處理()

python test.py arg1 arg2 

運行。如果我運行它使用

os.system("python test.py arg1 arg2") 

它運行。

我想使用subprocess.Popen(),但是當我這樣做

subprocess.Popen("python test.py arg1 arg2") 

它提供了以下錯誤

raise child_exception 
OSError: [Errno 2] No such file or directory 

任何想法?

非常感謝

回答

3

如果參數Popen是一個字符串,它會嘗試去執行它爲'sh <argument>',所以在你的情況下,它變成'sh python test.py arg1 arg2'這顯然是錯誤的。您可以將它傳遞給一個列表(如twall建議),或者指定shell=True參數。下一個應該工作:

subprocess.Popen("python test.py arg1 arg2", shell=True)