![](/img/trans.png)
[英]How to start Python IDLE from python.exe window if possible, and if not, what is python.exe even used for?
[英]How to start “python.exe” as subprocess in scala?
我的要求是在scala和python之間形成一個集成。 如何啟動“ python.exe”並從scala執行python命令。
我已經嘗試了以下鏈接中的代碼段,但似乎沒有用。 你能幫我這個忙嗎?
Scala 2.9中的“ scala.sys.process”如何工作?
提前致謝 !
流程API是非常人為設計的,並且絕對可怕(=未記錄)。 我經常回到Java API,因為它對我來說更有意義。
這是一個例子。 覆蓋os
變量以“存儲”輸出流似乎是一種愚蠢的方法(在Java中,您可以只從流程中查詢輸出流)。 API的設計者也許可以啟發我們他們的想法。 可能有一個更優雅的解決方案:
import sys.process._
var os: java.io.OutputStream = _
val python = Process(Seq("python","-i")).run(BasicIO.standard(os = _) /* WTF? */)
def pushLine(s: String): Unit = {
os.write(s"$s\n".getBytes("UTF-8"))
os.flush()
}
pushLine("1+1")
pushLine("exit()")
我最近不得不承擔一個非常相似的項目。 我不僅需要執行python腳本並解析輸出,還需要啟動一些python代碼並向其發送命令以執行並響應。 經過一段時間嘗試通過STDIN / STDOUT進行此通信后,我選擇使用ZeroMQ作為我的互操作通信通道
這樣,代碼的執行變得非常簡單
val process = s"python commandRunner.py $port".run()
$port
是我的代碼正在偵聽python代碼以通過ZeroMQ連接回我的commandRunner
,而commandRunner
腳本運行一個簡單的ZeroMQ事件循環
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.