Python程序退出问题
在编写Python代码时,涉及到退出程序逻辑,会使用到exit()
。在交互式控制台中,退出的提示就是使用Ctrl + D
或exit()
进行退出
当你通过python script.py
命令手动执行代码时,执行到exit()
这里,程序会和预期一样退出
可是当你使用pyinstaller将代码打包成了一个可执行程序,问题就出现了。程序执行到exit()
的时候,抛出了一个错误:NameError: name 'exit' is not defined
它告诉你:exit
这个函数没有被定义。
这是因为标准的Python库中并没有名为exit
的内置函数,打包前执行程序时调用的exit()
实际上是交互式环境提供的扩展功能,使用pyinstaller打包并不会将它打包进去。
如何解决这一问题?
可以使用sys.exit()
方法(使用前别忘了import sys
)。
sys.exit()
可以接收一个可选参数,表示程序的退出状态码。
-
如果没有参数传入或传入的参数为
0
,即sys.exit()
或sys.exit(0)
,表示程序正常退出。 -
如果传入的是一个非零参数,如
sys.exit(-1)
,通常用于指示程序由于某种类型的错误或异常情况退出。