防止Python shell clos

2024-04-26 10:42:15 发布

您现在位置:Python中文网/ 问答频道 /正文

如果用户单击窗口的close按钮,如何防止pythonshell/commandline/terminal窗口关闭?我试图捕获SystemExit异常并重写sys.exit(),但没有成功。你知道吗

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


Tags: 用户程序框架closesysexit二进制gui
1条回答
网友
1楼 · 发布于 2024-04-26 10:42:15

一般情况下不可能这样做。你知道吗

终端窗口(一般来说)是一个独立于Python本身的进程(带有IPython的YMMV和其他类似的东西,但是如果您在一个常规终端中运行常规Python,这是正确的)。当终端窗口决定离开时,不可能(在最合理的操作系统和窗口管理器下)阻止它这样做,因为它是一个完全不同的程序,恰好显示您的输入和输出。你知道吗

但是,您可以在终端关闭后保持程序运行。终端仍会消失,但程序将继续在后台运行。在Unix系统上,这通常是通过使用^{}捕获或忽略SIGHUP信号来实现的。你知道吗

根据您的操作系统和终端仿真器的选择,可以将终端配置为不关闭,也可以不关闭。默认情况下,Linux下的一些终端仿真器会在用户试图关闭某个进程时警告用户,该进程正在该终端下运行。这是高度依赖于平台的,不能从Python内部进行配置(可移植的,或者根本不能)。你知道吗

相关问题 更多 >