我正在使用Windows 7機器,現在已經安裝了用於python開發的PyDev實用程序的STS。Python - subprocess.Popen不返回輸出
我的代碼想要登錄到一臺機器並返回輸出。我當前的代碼是:
ssh = subprocess.Popen(["uname -a"], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print (ssh)
result = ssh.stdout.readlines()
print (result)
這yileds的輸出:
<subprocess.Popen object at 0x02B35810>
[]
但uname -a
命令應產生Linux 3.10.0-514.10.2.el7.x86_64 #1 SMP Mon Feb 20 02:37:52 EST 2017 x86_64 x86_64 x86_64 GNU/Linux
任何想法,爲什麼我不能捕獲輸出?
感謝您的詳細解釋。如果我在Linux機器上運行它,這確實有效。但我目前正在開發Windows上的STS IDE。我得到錯誤 文件「C:\ Users \ user \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ subprocess。在__init__ restore_signals,start_new_session) 文件「C:\ Users \ user \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ subprocess.py」,第990行,在_execute_child中 startupinfo) FileNotFoundError:[WinError 2]系統找不到指定的文件 –
已經更好了,解釋很簡單:除非你已經安裝了cygwin或MSYS,否則'uname'不存在於windows中如果你想知道OS&我推薦你使用便攜式'platform'模塊 –
對不起,我沒有提到我正在運行的整個命令,它的'result = subprocess.check_output([「ssh」,「172.29.219.16」,「uname」]) '。這仍然給出同樣的錯誤。目標節點是Linux系統。 –