Вызов метода Python из C# (без IronPython)

Как бы я вызвал функцию в скрипте Python из моего метода C#? (без 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 ответ

ОС, вероятно, не разрешает сопоставление файлов должным образом, поэтому она не знает, как выполнить файл.py.

Вместо этого попробуйте указать "python.exe" в качестве FileName и hello.py в качестве аргумента. Точное имя исполняемого файла, конечно, будет зависеть от установленной вами версии 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, чтобы он работал)

Другие вопросы по тегам