NameError:没有为pygame定义名称“退出”

Posted

技术标签:

【中文标题】NameError:没有为pygame定义名称“退出”【英文标题】:NameError: name 'quit' is not defined for pygame 【发布时间】:2020-10-05 13:13:35 【问题描述】:

我尝试制作一个小蛇游戏(使用 pygame),并尝试使用 cx_Freeze 将其导出为 .exe。游戏运行良好,直到我关闭窗口。当我这样做时,会出现以下错误消息:

但我只是用它来关闭游戏循环:

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        pygame.quit()
        quit()
    if event.type == pygame.KEYDOWN:
        if event.key == pygame.K_ESCAPE:
            pygame.quit()
            quit()
        if event.key == pygame.K_SPACE:
            Game()

如果我打开 .py 文件,我不会收到任何错误消息。我不知道如何解决这个问题。

我的 setup.py:

import cx_Freeze

executables = [cx_Freeze.Executable("snake.py", base="Win32GUI", icon="links/icon.ico")]

cx_Freeze.setup(
    name="Snake",
    options="build_exe": "packages": ["pygame"], "include_files": ["links/"],
    executables=executables
    )

这是我的代码:Codeshare.io

【问题讨论】:

不要发布指向您的代码的链接。 (Codeshare.io 似乎没有自动启动)。贴出调用quit()的相关代码。 您在程序中未定义的代码笔上的第 42 行调用 pygame.quit() 下的函数 quit()。创建函数或删除行。 quit 在冻结时对我来说也总是失败。请改用sys.exit() quit() 已经是一个定义的函数,pygame.quit() 也是。如果我删除其中一个,只会产生更多错误或错误... for 循环之前是否有一个while 循环运行? 【参考方案1】:

所以我通过输入 sys.exit() 而不是输入 quit() 解决了这个问题 我之前试过这个,但我不知道我必须import sys

(对不起,我是初学者)

【讨论】:

以上是关于NameError:没有为pygame定义名称“退出”的主要内容,如果未能解决你的问题,请参考以下文章

名称错误:未定义全局名称“BaseFunction”

熊猫不进口吗? 'NameError:未定义全局名称'pandas''

Python / Access NameError:名称''未定义

NameError:名称view_post未定义[重复]

Python XML NameError:未定义全局名称“qn”

NameError:名称“TypeError”未在 Apache 日志中定义