【问题标题】:execute python script from vb.net从 vb.net 执行 python 脚本
【发布时间】:2012-11-28 06:34:54
【问题描述】:
如何从 VB.NET 代码中执行 python 脚本?
我想使用 VB.NET 为我的 python 脚本构建 GUI。
这是为了能够为脚本的用户创建一个 GUI。
我找到了这个例子:
Shell(c:\Program Files\python 266\python.exe path\myPythonScript.py +
" " + arg1 + " " + argN)
但是我想知道有没有更合适的python脚本执行方式?
我还想了解如何处理此类设置中的错误。
非常感谢您的帮助!
谢谢,
梅里洛
【问题讨论】:
标签:
python
.net
scripting
user-interface
【解决方案1】:
这就是我在 C# .Net 中的做法:
protected override void OnClick()
{
System.Diagnostics.Process.Start("C:\\path\\to\\pyscript\\MyScriptHere.py");
}
【解决方案2】:
在VB中你也可以使用命令:
shell( "d:\path\to\your\script.py arg1 arg2" )
【解决方案3】:
您可以从 .NET 中调用 python,但如果您想要这样做的唯一原因是因为您想为您的 Python 设计一个 GUI,那么为什么不让事情变得“更干净”并在 Python 中完成呢?您可以使用TKInter 或wxPython 来命名两个GUI API。后者还有wxDesign,可以减轻GUI设计的负担。
This list 为您在 Python 中的 GUI 设计提供了更多选项,而不是我列出的两个选项。
另一方面,你没有说你正在开发什么需要 python,但如果它是用于 ArcGIS 或 GDAL(可能是两个最常见的 GIS 脚本环境),它们都具有 .NET API 以及Python。因此,您可以在 .NET 中完成 ALL。
【解决方案4】:
就我而言,我希望 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