You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Pygame代码时VS Code下窗口直接关闭、Jupyter下无响应无报错如何解决

问题根因排查

1. 核心错误:入口判断条件异常

你代码里的入口判断写为:

if __name__ == "__GAME!__":
    main()

Python 脚本直接运行时,全局变量__name__的固定默认值为__main__,你填写的自定义值__GAME!__永远不会匹配,因此main()函数从头到尾都没有执行。

2. 两类异常场景的对应原因

  • VS Code运行时窗口直接关闭:VS Code执行.py文件时,脚本会从上到下依次执行全局作用域的代码(包括创建pygame窗口、设置标题的逻辑),但由于main()未被调用,脚本执行完全部代码后直接退出,进程结束后窗口被系统自动回收,因此会出现窗口闪一下就消失的情况。
  • Jupyter notebook运行时无响应:Jupyter的内核是常驻进程,全局作用域的代码执行完创建窗口后,进程不会主动退出,但由于main()内的事件循环没有启动,pygame没有处理系统事件的逻辑,操作系统就会判定窗口处于无响应状态。
修复方案

修改两处代码即可正常运行:

  1. 补全pygame初始化语句(符合官方规范,避免部分环境下运行异常)
  2. 修正入口判断条件为标准的__main__

修复后的完整代码如下:

import pygame
# 新增pygame初始化
pygame.init()

WIDTH, HEIGHT = 1100, 600
WIN = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Game")

WHITE = (255, 255, 255)

def main():
    run = True
    while run:        
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
    
        WIN.fill(WHITE)
        pygame.display.update()
    
    pygame.quit()

# 修正入口判断条件
if __name__ == "__main__":
    main()

内容的提问来源于stack exchange,提问作者Centauri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 06:42:01