web-dev-qa-db-ja.com

.NET-CoreアプリケーションでPythonを使用する方法は?

.NET-CoreアプリケーションでPython=を使用する方法?ソリューションが「エレガント」である必要がないように、ハッカソンの目的でこれが必要です。実行することは不可能です。 Pythonスクリプトは直接です。標準ASP.NETにはライブラリIronPythonのみが存在し、.NET-Coreには存在しないためです。つまり、Pythonスクリプトを使用する最も簡単な方法は何ですか。 ?(これはハッカソンなので、スクリプトを実行するためだけにPHP serverまたはSeleniumなどを使用することもできます)

17
Maciek Drabicki

これを試して

public class RunCmd
{
    public string Run(string cmd, string args)
    {
        ProcessStartInfo start = new ProcessStartInfo();
        start.FileName = "python";
        start.Arguments = string.Format("\"{0}\" \"{1}\"", cmd, args);
        start.UseShellExecute = false;// Do not use OS Shell
        start.CreateNoWindow = true; // We don't need new window
        start.RedirectStandardOutput = true;// Any output, generated by application will be redirected back
        start.RedirectStandardError = true; // Any error in standard output will be redirected back (for example exceptions)
        using (Process process = Process.Start(start))
        {
            using (StreamReader reader = process.StandardOutput)
            {
                string stderr = process.StandardError.ReadToEnd(); // Here are the exceptions from our Python script
                string result = reader.ReadToEnd(); // Here is the result of StdOut(for example: print "test")
                return result;
            }
        }
    }
}

その後

 var res = new RunCmd().Run("your_python_file.py","params");
 Console.WriteLine(res);
18
nimo