1
下面的代碼工作正常的Windows:如何啓動與許多參數的程序在Python/Linux的
subprocess.Popen([PATH_TO_G++]/g++ file.cpp -o file.exe)
但是在Linux中,我得到了以下錯誤:
OSError: [Errno 2] No such file or directory
閱讀文檔後和幾個SO線程,我發現子進程.Popen在Windows和nix系統中的工作方式不同。在Windows中,它將字符串作爲參數並啓動它,就像在終端中啓動它一樣。
在linux下,如果你有參數,它需要一個字符串列表。第一個值是程序本身,然後是屬性。通過傳遞Shell = True參數可以使其表現得像Windows一樣,但對我來說這不是一個好的解決方案。
我嘗試了shlex.split函數,但它仍然不起作用。
您是否試過'subprocess.Popen([「progpath」,「arg1」,「arg2」,「arg3」])? – khachik 2011-04-13 13:08:40
@khachik,是的,但我可能會誤解他們。如何使用我的例子的參數? – Alex 2011-04-13 13:11:23
您可以在所有平臺上按順序傳遞參數。你真正的問題是什麼? – 2011-04-13 13:11:29