建议你先看一下错误信息是什么。
方案一:
先进入命令行后再用命令行打开C#程序,C#程序运行中出现的任何异常,其实都会直接输出到命令行,这样一来就能知道出现什么错误了。
方案二:
在代码的最外层加上异常捕获,像这样:
class ControlPython { public void startexe() { try { Process usepy = new Process(); string path = """ + System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "\pyproject.exe" + """; usepy.StartInfo.FileName = @"python"; usepy.StartInfo.Arguments = path; usepy.StartInfo.UseShellExecute = false; usepy.StartInfo.RedirectStandardOutput = true; usepy.StartInfo.RedirectStandardInput = true; usepy.StartInfo.RedirectStandardError = true; usepy.StartInfo.CreateNoWindow = false; usepy.OutputDataReceived += (sender, args) => Console.WriteLine("received output: {0}", args.Data); usepy.Start(); sepy.BeginOutputReadLine(); } catch( Exception e ) { Console.WriteLine( e ); } Console.ReadLine(); } }
另外我注意到最后的那个sepy变量/成员似乎没有定义。