вызов Python кода из C# с использованием «InterProcessCommunication» - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть файл сценария python, который отлично работает из IDE spyder. Я хочу вызвать и использовать его вывод из приложения C#, используя следующий код:

public string Methd2(string script, string pythonPath)
{
    string result = string.Empty;

    ProcessStartInfo start = new ProcessStartInfo(@"C:/Users/User/AppData/Local/Programs/Python/Python37/python.exe", @"E:/Prediction Model/14/Forecasting/function_call.py");
    //start.FileName = @"C:/Users/User/AppData/Local/Programs/Python/Python37/python.exe";
    //start.Arguments = @"E:/Prediction Model/14/Forecasting/function_call.py"; ;
    start.UseShellExecute = false;
    start.RedirectStandardOutput = true;

    using (Process process = Process.Start(start))
    {
        result =process.StandardOutput.ReadToEnd();//First Technique...
    }

    using (Process process = Process.Start(start))
    {
        using (StreamReader reader = process.StandardOutput)
        {
            result = reader.ReadToEnd();//Second Technique...
            process.WaitForExit();
            Console.Write(result);
        }
    }
    return result;
}

Строка результата всегда остается пустой ... Я использовал различные настройки пути к python .exe и файл script.py как 1), используя @ в начале пути. 2) добавление косой черты (/) в путь 3) размещение косой черты () в пути

, но ничего не сгенерировало требуемый вывод ... Я не хочу использовать Iron python ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...