试图在C#中调用Python脚本

时间:2016-03-21 16:41:28

标签: c# python

我正在制作一个迷你Python IDE以获得乐趣。为什么不。所以我希望能够从C#调用python脚本,现在我只是测试一个简单的场景。我知道这不是专业IDE的工作方式。

    private void Run_Click(object sender, EventArgs e)
    {
        run_cmd("C:/Python34/python.exe", "C:/Users/Alaseel/Desktop/test.py");
    }

    private void About_Click(object sender, EventArgs e)
    {
        // Open the about documentation
    }

    private void run_cmd(string cmd, string args)
    {
        ProcessStartInfo start = new ProcessStartInfo();
        start.FileName = "C:/Python34/python.exe";
        start.Arguments = string.Format("{0} {1}", cmd, args);
        start.UseShellExecute = false;
        start.RedirectStandardOutput = true;
        using (Process process = Process.Start(start))
        {
            using (StreamReader reader = process.StandardOutput)
            {
                string result = reader.ReadToEnd();
                Console.Write(result);
            }
        }
    }

每当我点击Windows窗体应用程序上的“运行”按钮时,它会短暂运行python.exe然后关闭。它实际上并没有运行我传入的文件。我做错了吗?

PS:run_cmd方法不是我的。我先前在一个线程上查找了这个问题并使用了他们的代码。但我认为我使用的方法不对。

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:3)

在这种情况下,您实际上放了两次python.exe路径。您将其设为cmdstart.Filename

您的命令行将如下所示:"C:/Python34/python.exe" "C:/Python34/python.exe" "C:/Users/Alaseel/Desktop/test.py"

这可能是一个无效的命令。