簡體   English   中英

python子進程控制台輸出-eclipse調用批處理調用python調用exe

[英]python subprocess console output - eclipse calls batch calls python calls exe

我有一種情況,我希望從eclipse完成工作,所以我使用eclipse的.launch配置 我試圖使其直接運行python,但出現錯誤: error 193 (%1 is not a valid Win32 app) 其中%1可能是我的python腳本。

我決定創建一個簡單的批處理腳本來調用這種大型野生python動物。

我做了很多組合,發現這是最好的(批處理輸出一些字符串,運行python,等待,再次輸出一些字符串):

start /b /wait "Python_script.py" "%1" "%2" "%3" "%4" "%5"

它一直工作到python本身開始運行exe文件為止。

我再次嘗試了很多組合:

os.system([exe, arg1, arg2, ...])subprocess.call(..)subprocess.check_output(..)

->我或者在Eclipse控制台中沒有看到輸出,或者輸出被延遲,或者在控制台中只有python /或只有exe的輸出。

最后我使用了subprocess.Popen(...) ,這幾乎沒問題-唯一的缺點是python腳本的輸出不等待exe進程完成,而當我使用subprocess.Popen(...).wait() exe將輸出傳遞到控制台,但是python腳本的整個輸出會延遲到'exe'終止 我只想延遲exe調用后編寫的pythons腳本輸出部分。

  • 如何實現這種“部分控制台輸出延遲”是主要主題
  • 有關python和eclipse .launch配置的建議將不勝感激
  • 有關此流程(?)之間的通信方式的一般建議,將不勝感激

謝謝!

在我看來,您要嘗試使用三個不同的流程來協同工作,您已經嘗試了很多方法來使其正常工作,並且代碼非常復雜,以至於您無法輕松地將其發布在此處。 這就很難得到一個好的答案(Stack Overflow在解決有重點的問題時效果更好),但這是我要采用的一般方法:

  1. 如果您嘗試直接從命令提示符運行Python_script.py則腳本會運行嗎?
    • 如果沒有,請考慮在Windows中注冊.py文件類型。
    • 如果支持,那么Eclipse啟動配置可能不支持或不正確支持Windows注冊的文件類型。 無需弄亂批處理文件並start 只需更換Python_script.py在你的啟動配置c:\\Python27\\python.exe Python_script.py (或類似)。
  2. 在命令提示符下運行腳本-能夠運行,並帶有正確的Python和子進程輸出,並等待所有操作終止。
  3. 如果事情在命令提示符下仍然有效,而在Eclipse下仍然不起作用,則發布一個新問題,並用一小段代碼顯示您正在嘗試的內容以及對錯誤的描述。 subprocess.callsubprocess.check_outputPopen都有不同的用途,因此除了參考文檔外,很難給出一般性建議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM