我一直在尋找如何鏈接的Visual Basic和Python
我一直如此努力與Python文件的Visual Basic通過鏈接在Visual Basic中,但沒有使用shell
happend
我已經叫Python文件Go.py
,我想用它鏈接的Visual Basic按鈕,得到返回到變量
什麼想法?
我一直在尋找如何鏈接的Visual Basic和Python
我一直如此努力與Python文件的Visual Basic通過鏈接在Visual Basic中,但沒有使用shell
happend
我已經叫Python文件Go.py
,我想用它鏈接的Visual Basic按鈕,得到返回到變量
什麼想法?
首先,你可以使用Shell
,雖然它不幸可能比你想象的更復雜。
你目前的問題是一個簡單的 - Shell
不能直接運行Python文件,所以你需要有Shell
呼叫cmd /c python.exe Go.py
,你可能需要提供完整路徑python.exe
爲好。
但是,你也想捕捉的結果,並Shell
只返回進程ID,沒有任何一種過程的輸出。你可以看看一些examples of external process invocation,雖然他們沒有明確說明如何捕獲輸出。如果Go.py
輸出到終端,你也許可以捕獲輸出到使用standard Windows output redirection一個文件,然後打開VisualBasic中的文件,並讀出值。
您也可以使用System.Diagnostics.Process()
而不是跳過所有嘗試從Shell
獲得更多功能的環節。 (具體而言,審查與輸出重定向ProcessStartInfo
類屬性使用Shell
會,給你更多的控制比任何東西)。
我認爲這很容易通過「os.popen(」cc.py「)。」()「 – Hamoudaq 2012-02-19 16:55:28
@EngHamoud:可悲的是,事實並非如此 - 即使在Python中,您也應該使用'subprocess '模塊,其'Popen'類的功能非常類似於VB中的System.Diagnostics.Process類。 – 2012-02-19 17:26:49
您使用IronPython的,對不對? – Marcin 2012-02-19 16:28:26
沒有常規的Python – Hamoudaq 2012-02-19 16:36:16
這將是你的問題。 VB.net的目標是CLR,就像IronPython一樣。 – Marcin 2012-02-19 16:36:56