我正在尝试从VB.net复制this example of calling IronPython代码。我已经下载并安装了IronPython并创建了一个VB.net控制台应用程序。我添加了对IronPython安装文件夹中所有dll的引用:
我有这个源代码:
Option Explicit On
Option Strict On
Imports Microsoft.Scripting.Hosting
Imports Microsoft.Scripting
Imports IronPython.Hosting
Imports IronPython.Runtime.Types
Module Module1
Public Class HelloWorldVB
Public Overridable Function HelloWorld(ByVal name As String) As String
Return String.Format("Hello '{0}' from Visual Basic", name)
End Function
End Class
Sub Main()
Dim helloWorld As New HelloWorldVB()
Console.WriteLine(helloWorld.HelloWorld("Maurice"))
Dim runtime As ScriptRuntime = PythonEngine.CurrentEngine.Runtime
Dim scope As ScriptScope = Runtime.ExecuteFile("HelloWorld.py")
Dim pythonType As PythonType = scope.GetVariable(Of PythonType)("HelloWorldIronPython")
helloWorld = CType(Runtime.Operations.Call(pythonType), HelloWorldVB)
Console.WriteLine(helloWorld.HelloWorld("Maurice"))
Console.ReadLine()
End Sub
End Module
我收到错误“未声明名称'PythonEngine'。”
当我搜索ObjectBrowser时,我似乎找不到PythonEngine。
示例是否已过期或是否有错误?
答案 0 :(得分:0)
事情似乎发生了变化。
我还没有参与过IronPython&已经下载了它。
我尝试将您的代码与IronPython.DLL中的内容相关联。
Dim scriptEngine as Python.CreateEngine()
Dim scope As ScriptScope = scriptEngine.ExecuteFile("myfile.py")
我猜你的其他代码应该按原样运行 将Ironpython.dll加载到反射器&你将能够看到类型/方法/属性。
希望有所帮助。
答案 1 :(得分:0)
我发现IronPython 2.0.1附带的常见问题解答中的这个链接你以前读过吗? Aaron Marten : A bit more on IronPython