讓我們考慮Linux平臺,我需要執行一個名爲smart.exe的程序,它使用input.dat文件。這兩個文件都放在同一目錄中,每個文件具有相同的文件權限777.爲什麼subprocess.call()在linux中顯示錯誤?
現在,如果我在終端窗口中運行以下命令,smart.exe將完全執行而不會出現任何錯誤。另一方面,如果我使用以下名爲my_script.py的python腳本放置在同一個目錄中,則會出現錯誤。
my_script.py具有下面的代碼:
#!/usr/bin/python
import os, subprocess
exit_code = subprocess.call("./smart.exe input.dat", shell = False)
錯誤如下:
File "my_script.py", line 4, in <module>
exit_code = subprocess.call("./smart.exe input.dat", shell = False)
File "/usr/lib64/python2.6/subprocess.py", line 478, in call
p = Popen(*popenargs, **kwargs)
File "/usr/lib64/python2.6/subprocess.py", line 642, in __init__
errread, errwrite)
File "/usr/lib64/python2.6/subprocess.py", line 1234, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
有人能告訴我爲什麼發生這種情況。請注意,smart.exe需要大約10秒才能完成。這可能是解決問題的線索。
另請告知是否有任何其他方式從my_script.py運行smart.exe。非常感謝您的解決方案!
你怎麼意圖在Linux機器上運行一個Windows二進制文件?你是否在使用像葡萄酒這樣的東西? – albert