3

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

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

我找到了这个例子:

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

但我想知道是否有更合适的方式来执行 python 脚本?

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

非常感谢您的帮助!

谢谢,

梅里卢

4

4 回答 4

2

这就是我在 C# .Net 中的做法:

    protected override void OnClick()
    {
        System.Diagnostics.Process.Start("C:\\path\\to\\pyscript\\MyScriptHere.py");
    }
于 2012-12-10T15:19:45.610 回答
2

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

 shell( "d:\path\to\your\script.py arg1 arg2" )
于 2012-12-10T15:26:29.157 回答
2

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

除了我列出的两个之外, 此列表为您提供了更多用于 Python 中的 GUI 设计的选项。

另一方面,您没有说您正在开发什么需要 python,但如果它是用于 ArcGIS 或 GDAL(可能是两个最常见的 GIS 脚本环境),那么它们都具有 .NET API 和 Python。因此,您可以在 .NET 中完成所有操作。

于 2012-12-10T15:38:35.307 回答
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
于 2013-02-25T15:35:06.160 回答