我想从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对我来说不是解决方案。
你知道任何类似的解决方案吗?
答案 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!