如何解决 Python 脚本在命令行中运行后立即关闭的问题-Python教程

python 脚本在 vs code 调试器中正常运行,但在双击或通过文件资源管理器用 python 直接打开时闪退,根本原因是程序执行完毕后终端自动退出;只需在主逻辑末尾添加阻塞式输入即可保持窗口常驻。

这个问题非常典型:脚本本身没有错误,而是运行环境差异导致的“视觉性崩溃”。VS Code 的调试终端默认会保留窗口(即使程序结束),而 Windows 下直接双击 .py 文件调用 python.exe 启动时,一旦 main() 执行完毕、sys.exit() 触发或主流程自然退出,关联的命令提示符(CMD)窗口就会立即关闭——用户甚至来不及看到最后的输出。

? 根本原因分析

  • getpass.getpass() 和 input() 确实会暂停程序,但仅限于它们被调用时;
  • 你的 desktop() 函数中使用了 while True: 循环,看似永不退出,但注意:当用户输入非法命令(如 “calculator”)时,代码进入 else 分支并执行 continue,但并未处理合法退出路径;
  • 更关键的是:calculator() 和 antivirus() 函数目前为空(仅 pass),调用后立即返回,循环继续,但若用户想退出桌面环境,原代码中没有任何 break 或退出指令;
  • 因此,当用户完成所有操作(例如登录 → 进入 desktop → 无意中触发未定义行为或异常退出循环)后,login() 函数返回,main() 执行完毕,进程终止,CMD 窗口瞬间关闭。

✅ 正确解决方案

在 main() 函数末尾添加一行阻塞输入,确保程序不会立即退出:

def main():
    welcome_user()
    boot_up()
    time.sleep(1)
    login()
    input("Press Enter to exit...")  # ? 关键修复:保持窗口打开

⚠️ 注意:这行必须放在 login() 之后、main() 结束前。它不会影响正常逻辑,仅作为“安全垫”捕获最终退出意图。

?️ 同时建议增强健壮性(推荐补充)

除了上述修复,还应完善 desktop() 的退出机制,避免依赖外部 input():

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » 如何解决 Python 脚本在命令行中运行后立即关闭的问题-Python教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4002993+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4002993+
  • 本周更新: 0+
  • 最后更新: 2026-03-16