Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试在C中调用Python脚本#_C#_Python - Fatal编程技术网

C# 尝试在C中调用Python脚本#

C# 尝试在C中调用Python脚本#,c#,python,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 Ab

为了好玩,我正在制作一个迷你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方法不是我的。我以前在一个线程上查找过这个问题,并使用了他们的代码。但我认为我用错了方法


有什么想法吗?谢谢大家!

在本例中,您实际上放置了两倍的python.exe路径。您将其命名为
cmd
start.Filename

您的命令行看起来像:
“C:/Python34/python.exe”“C:/Python34/python.exe”“C:/Users/Alaseel/Desktop/test.py”


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

在这种情况下,您实际上放置了两倍的python.exe路径。您将其命名为
cmd
start.Filename

您的命令行看起来像:
“C:/Python34/python.exe”“C:/Python34/python.exe”“C:/Users/Alaseel/Desktop/test.py”


这可能是无效的命令。

谢谢您的帮助!我将如何重新构造方法签名或方法调用?有不同的方法可以做到这一点。我可能会这样做:start.FileName=cmd。然后,您不会将cmd传递给参数,因为..它不是您正在调用的程序的参数,而是程序本身!因此,start.Arguments=args。那应该行!(我没有测试)谢谢你的帮助!我将如何重新构造方法签名或方法调用?有不同的方法可以做到这一点。我可能会这样做:start.FileName=cmd。然后,您不会将cmd传递给参数,因为..它不是您正在调用的程序的参数,而是程序本身!因此,start.Arguments=args。那应该行!(我没有测试)