2012-12-10 391 views
1

如何從VB.NET代碼執行python腳本?從vb.net執行python腳本

我想使用VB.NET爲我的python腳本構建GUI。 這是爲了能夠爲腳本的用戶創建GUI。

我發現這個例子:

Shell(c:\Program Files\python 266\python.exe path\myPythonScript.py + 
     " " + arg1 + " " + argN) 

但我想知道的是有執行python腳本的更合適的方式?

我也想了解如何在這種設置中處理錯誤。

您的幫助非常感謝!

感謝,

meryloo

回答

1

這是我是如何做的在C#.NET:

protected override void OnClick() 
    { 
     System.Diagnostics.Process.Start("C:\\path\\to\\pyscript\\MyScriptHere.py"); 
    } 
1

在VB中,你也可以使用命令:

shell("d:\path\to\your\script.py arg1 arg2") 
1

你可以從.NET內部調用python,但如果你想這麼做的唯一原因是因爲你想爲你的Python設計一個GUI,爲什麼不要讓事情變得更乾淨,並在Python中完成所有工作?您可以使用TKInterwxPython來命名兩個GUI API。後者也有可以減輕GUI設計負擔的wxDesign。

This list爲您在Python中的GUI設計提供了更多的選擇,而不是我列出的兩個選項。另一方面,你並沒有說你正在開發哪些需要python,但是如果它是用於ArcGIS或GDAL(可能是兩種最常見的GIS腳本環境),那麼這兩者都有.NET APIs。作爲Python。所以,你可以做到這一點NET中的所有

1

就我而言,我希望Python腳本創建一個csv文件,然後用VB宏從該csv文件中收集信息。當我向宏添加延遲時,此代碼有效:

Shell ("C:\Python27\ArcGIS10.1\python.exe myPath\PythonScript.py arg1 arg2") 
FourSecDly 

該延遲允許shell進程在運行宏之前完成。延遲代碼爲:

Public Function FourSecDly() 
y = Timer + 4# 
Do While Timer < y 
DoEvents 
Loop 
End Function