Python 名称错误:名称';退出';没有定义

Python 名称错误:名称';退出';没有定义,python,cx-freeze,Python,Cx Freeze,我使用cxfreeze从planrequest.py创建了一个Windows可执行文件。它似乎工作正常,但当我运行exe文件时,我得到了name错误:没有定义名称“exit” 声明修复程序将使用import sys。但是,我使用import sys。代码作为python脚本运行良好(如中所示,在编译为可执行文件之前,我对命令行参数进行了大量测试) 您必须将该函数应用于sys: from sys import exit exit() 由于退出是函数本身,您需要用导入sys来调用它,这将不足以使退

我使用cxfreeze从planrequest.py创建了一个Windows可执行文件。它似乎工作正常,但当我运行exe文件时,我得到了
name错误:没有定义名称“exit”

声明修复程序将使用
import sys
。但是,我使用import sys。代码作为python脚本运行良好(如中所示,在编译为可执行文件之前,我对命令行参数进行了大量测试)


您必须将该函数应用于sys:

from sys import exit
exit()

由于退出是函数本身,您需要用导入sys来调用它,这将不足以使退出在全局范围内

你要么需要做

from sys import exit
exit()


请注意,由于您也在使用argv,在第一种情况下,您应该从sys import argv执行
,退出
导入sys
,然后从sys import exit()执行
操作,
cxfreeze
删除通常设置
builtins.exit
site
初始化。如果
import sys
您应该使用
sys.exit
,但是
exit
也应该工作。你在你的代码中的任何地方都覆盖了它吗?我想知道谁认为这是个好主意。@DeepSpace,(至少从python2.5开始就是这样)这就是答案,这真是一个痛苦。如果
sys.exit
是必需的,我觉得IDE应该告诉我它是必需的。也许我只是习惯了更多的…固化的?…语言。一个好的IDE应该告诉你这样或那样的方式。在pycharm中,如果我键入
import sys
,然后键入
exit()
,它会在导入行“ununused import statement”下向我打印一条警告
from sys import exit
exit()
import sys
sys.exit()