从C#调用Python方法(不含IronPython)

时间:2015-06-05 19:39:45

标签: c# python

如何从c#方法调用python脚本中的函数? (没有IronPython)

在hello.py

def hello_world(msg):
    print msg

在test.cs中

        ProcessStartInfo start = new ProcessStartInfo ();
        start.FileName = "hello.py";
        start.Arguments = string.Format("{0}", arg);
        start.UseShellExecute = true;
        start.RedirectStandardOutput = true;

        using(Process process = Process.Start(start))
        {

        }

1 个答案:

答案 0 :(得分:0)

操作系统可能无法正确解析文件关联,因此它不知道如何执行.py文件。

相反,请尝试使用' python.exe'作为FileName和hello.py作为参数。 exe的确切名称当然取决于你安装的python的版本。

举个例子:

    ProcessStartInfo start = new ProcessStartInfo ();
    start.FileName = @"c:\python\python27.exe";
    start.Arguments = string.Format("hello.py {0}", arg);
    start.UseShellExecute = true;
    start.RedirectStandardOutput = true;

    using(Process process = Process.Start(start))
    {

    }

(在上面的例子中,您当然必须替换python可执行文件的完整路径以使其工作)