防止Python shell关闭

时间:2016-04-27 14:25:02

标签: python

如果用户单击Window的关闭按钮,如何防止Python shell /命令行/终端窗口关闭?我试图抓住SystemExit例外并覆盖sys.exit(),但没有成功。

我知道,我可以使用像PyQt这样的GUI工具包/框架来实现这一点,但是导入它(并将其包含在我程序的最终二进制文件中)将是没有选择的,而它太大了。

1 个答案:

答案 0 :(得分:2)

在一般情况下无法执行此操作

终端窗口(一般来说)是一个与Python本身不同的进程(YMMV与IPython和其他类似的东西,但如果您在常规终端内运行常规Python,则会出现这种情况)。当终端窗口决定离开时,不可能(在大多数合理的操作系统和窗口管理器下)阻止它这样做,因为它是一个完全不同的程序,恰好正在显示您的输入和输出。

可以,但是,在终端关闭后让您的程序继续运行。终端仍然会消失,但程序将继续在后台运行。在Unix系统上,通常通过使用signal捕获或忽略SIGHUP信号来完成。

根据您的操作系统和终端仿真器的选择,可能会也可能无法将终端配置为不关闭。默认情况下,Linux下的某些终端仿真器会警告用户,当用户尝试关闭时,终端下会有一个进程在运行。这是高度依赖于平台的,无法在Python中进行配置(可移植或可能)。