C#(.NET6)调用python.exe运行Python脚本无响应、闪退如何解决
问题修复方案
代码存在两处直接导致异常的配置错误:
- 脚本路径拼写错误:
start.Arguments配置的路径C\Users\user_name\PycharmProjects\Program_start\main.py中,C盘盘符后缺失冒号,属于非法路径,Python解释器读取不到目标脚本会直接退出,对应窗口闪退现象。 - 解释器选型错误:配置的
pythonw.exe是Python用于运行无交互后台脚本的版本,默认不创建控制台窗口,也不支持标准输入输出流交互,代码中的input()阻塞逻辑完全依赖控制台交互,用pythonw启动时会出现无响应或直接崩溃的情况。
修正后的run_cmd方法代码
private void run_cmd() { ProcessStartInfo start = new ProcessStartInfo(); // 替换为带控制台支持的python.exe,不要使用pythonw.exe start.FileName = @"C:\Users\user_name\AppData\Local\Programs\Python\Python39\python.exe"; // 补全C盘盘符后的冒号,修正路径拼写错误 start.Arguments = @"C:\Users\user_name\PycharmProjects\Program_start\main.py"; start.UseShellExecute = false; start.CreateNoWindow = false; start.RedirectStandardOutput = false; start.RedirectStandardError = false; Process.Start(start); }
替换后重新编译运行项目,点击按钮即可正常弹出Python控制台窗口,停在Is this working?的输入等待位置,不会再出现闪退或无响应问题。
补充说明:如果后续需要隐藏Python运行的控制台窗口,可以换回
pythonw.exe,但该版本不支持input()这类控制台交互逻辑,仅适合运行无交互的后台脚本。
内容的提问来源于stack exchange,提问作者Tymo
相关产品推荐
相关产品推荐

