Вызов метода 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, чтобы он работал)