从C#调用python脚本(面向对象的方法)

时间:2017-10-25 11:05:41

标签: c# python

我想从C#(Visual Studio)运行python脚本。我不想使用C#进程来执行此操作,因为我必须能够访问所有python的模块,类和方法(我希望将其视为python对象)。我正在寻找这样的事情:

" Python代码"

" PyModule"

class PyClass:

    def method:
        print("Hello world!")

C#代码

using PyModule.PyClass

PyClass.method()

我找到了python.net http://pythonnet.github.io/,但他们说他们的解决方案无法验证。 我必须用Python 3编写它,所以IronPython对我来说不是解决方案。

你知道任何类似的解决方案吗?

1 个答案:

答案 0 :(得分:1)

嗯,请按照评论中的建议查看IronPython。您可以编写python脚本,将其保存到greet.py

def greet(name):
    return 'Hello ' +  name + '!'

现在从C#开始:

using IronPython.Hosting;
using Microsoft.Scripting.Hosting;

static void RunPythonScript()
{
    var engine = Python.CreateEngine();
    dynamic scope = engine.CreateScope();

    engine.ExecuteFile("greeting.py", scope);
    var greeting = scope.greet("John");

    Console.WriteLine(greeting);
}

您可能期望的结果是Hello John!