3

我有一个在 Python 中运行的程序,没有控制台(也就是说,我使用 py2exe 编译了它)。我希望人们能够从主菜单中退出,或者通过游戏中的特定按键(比如 Shift+Q)退出。虽然我正在编译 Linux/Mac 版本,但我目前正在 Windows 中运行它。如果似乎没有运行“while”循环,则按下 X 按钮可以正常工作,并且可以正确关闭它,否则它似乎会“存储”关闭命令,直到当前循环关闭。

至于菜单选项,我已经彻底查看了文档和 Stackoverflow,并尝试了 quit()、exit()、sys.exit() 以及我能找到的所有组合,但每次我得到:

Traceback (most recent call last):
  File "alphatime.pyw", line 61177, in <module>
  File "alphatime.pyw", line 53970, in place_menu
NameError: global name 'sys' is not defined

如果我尝试 sys.exit,然后:

Traceback (most recent call last):
  File "alphatime.pyw", line 61177, in <module>
  File "alphatime.pyw", line 53970, in place_menu
NameError: global name 'quit' is not defined

如果我尝试“退出()”。我听说过“提高”诸如需要关闭程序之类的事情,但我不清楚这意味着什么(我是 Python 新手)以及我将如何去做。

所以,我的问题有两个。

首先,我可以在循环中放入一些东西来识别按键,这些东西可以识别“X”被点击并关闭吗?

其次,是否有适当的命令可以关闭程序?我不知道为什么这些命令不起作用,而且我收到很多使用该程序的人抱怨它崩溃,或者他们必须 ctrl-alt-del 它,或其他什么。我相信

import os
try:
  os._exit(return_code)
except:
  pass

会起作用,但在这一点上,我不确定我是否有足够的能力在 python 上适当地部署它。提前致谢!

4

2 回答 2

5

你有没有机会

import sys

因为那应该工作!

于 2012-07-12T10:42:55.270 回答
3

NameError:未定义全局名称“sys”

在你可以使用之前sys.exit(),你必须import sys

这是退出程序的最佳方式。以开头的函数名被认为是内部的,除非你真的想做一些奇怪的事情,_否则不应该使用它。

于 2012-07-12T10:43:45.570 回答