从vb.net执行python脚本

时间:2012-12-10 14:47:14

标签: python .net scripting user-interface

如何从VB.NET代码中执行python脚本?

我想用VB.NET为我的python脚本构建一个GUI。 这是为了能够为脚本用户创建GUI。

我找到了这个例子:

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

但我想知道有更合适的方法来执行python脚本吗?

我还想了解如何处理此类设置中的错误。

非常感谢您的帮助!

谢谢,

meryloo

4 个答案:

答案 0 :(得分:1)

这就是我在C#.Net中的表现:

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

答案 1 :(得分:1)

在VB中,您还可以使用命令:

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

答案 2 :(得分:1)

你可以从.NET中调用python但是如果你想要这样做的唯一原因是因为你想为你的Python设计一个GUI,为什么不把事情做得更“干净”并用Python做呢?您可以使用TKInterwxPython来命名两个GUI API。后者也有wxDesign,可以减轻GUI设计的负担。

除了我列出的两个之外,

This list为Python提供了更多GUI设计选项。

另一方面,你没有说你正在开发什么需要python,但是如果它是用于ArcGIS或GDAL(可能是两个最常见的GIS脚本环境),那么它们都有.NET API以及蟒蛇。因此,您可以在.NET中执行 ALL

答案 3 :(得分: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