试图从VB.net调用IronPython - “未声明名称'PythonEngine'。”

时间:2009-06-30 17:31:21

标签: vb.net ironpython

我正在尝试从VB.net复制this example of calling IronPython代码。我已经下载并安装了IronPython并创建了一个VB.net控制台应用程序。我添加了对IronPython安装文件夹中所有dll的引用:

  • IronPython
  • IronPython.Modules
  • IronPythonTest
  • Microsoft.Scripting.ExtensionAttribute
  • Microsoft.Scripting
  • Microsoft.Scripting.Core

我有这个源代码:

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。

示例是否已过期或是否有错误?

2 个答案:

答案 0 :(得分:0)

事情似乎发生了变化。

我还没有参与过IronPython&已经下载了它。
我尝试将您的代码与IronPython.DLL中的内容相关联。

  • 添加对IronPython.dll的引用
  • 为导入添加语句 - “Imports IronPython.Hosting”。

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