关闭“run with python console”即可解决pycharm运行后窗口自动关闭问题:进入run→edit configurations,取消勾选该选项,使程序在标准run窗口执行,保留输出且不闪退。

PyCharm 运行完程序后窗口自动关闭,本质是控制台(Console)在程序退出后被销毁 —— 但这个“关闭”只是视觉上的,真正的问题常出在运行配置或脚本自身逻辑上。直接改设置就能解决大部分情况,不需要动代码。
PyCharm 运行配置里关掉 “Run with Python Console”
这是最常见也最根本的源头:如果你勾选了 “Run with Python Console”,PyCharm 就会强制用交互式控制台运行,而该控制台在脚本退出后默认清空并隐藏输出区域,看起来像“窗口关闭”了。
- 点击 Run → Edit Configurations…
- 左侧选中你的 Python 脚本配置(或选 Templates → Python)
- 取消勾选 “Run with Python Console”
- 点击 OK,重新运行
这样程序就在标准 Run 窗口执行,输出保留、不会闪退,且支持滚动查看完整日志。
为什么加 input() 有时没用?
在 PyCharm 里加 input() 停住窗口,只对纯命令行脚本有效;但如果运行模式是 “Python Console”,input() 可能被忽略或卡住 —— 因为交互式控制台的 stdin 行为和普通终端不一致。
PyCharm 2026.2是 JetBrains PyCharm 的指定版本安装包,下载地址指向官方 Windows 安装包直链,可用于旧项目兼容、版本回退和环境测试。
- 优先用上面的配置方式,而不是依赖
input() - 如果必须用
input(),确保运行模式是普通 Run(不是 Python Console),且脚本末尾有input("按回车继续...") - 注意:GUI 程序(如 Tkinter)加
input()没意义,窗口关闭后主线程已退出,input()根本不会执行
Tkinter 程序运行完窗口还在?那是进程没退出
这不是“窗口没关闭”,而是 mainloop() 结束后 Python 进程还在挂起 —— 特别是在 PyCharm 调试时,你点右上角 × 关了窗口,root.quit() 只停止事件循环,不终止进程。
- 正确做法是在窗口关闭协议里调用
sys.exit(0):import sys from tkinter import * <p>root = Tk() root.protocol("WM_DELETE_WINDOW", lambda: sys.exit(0))</p><h1>... 其他组件</h1><p>root.mainloop()</p> - 不要用
root.destroy()+root.quit()组合,容易残留线程或资源 - 打包成 exe 时记得加
--noconsole(用 PyInstaller),否则会多一个黑窗
真正要盯住的其实是运行模式:是 Run 窗口还是 Python Console,是 GUI 还是 CLI。改错配置比在代码里打补丁更可靠,尤其当多人协作或换环境时,硬编码 input() 或 sys.exit() 容易引发新问题。










