如何在Windows上捕获Python中的SIGINT?

时间:2013-05-22 08:02:25

标签: python windows signals

(类似于this question

在Python 2.7下的UNIX上,在Python提示符下:

 >>> import signal
 >>> def handler(signal, frame):
 ...     print 'welcome to the handler'
 ...
 >>> signal.signal(signal.SIGINT, handler)
 <built-in function default_int_handler>

我按ctrl-c

 >>> welcome to the handler

 >>>

在Windows上:

 >>> import signal
 >>> def handler(signal, frame):
 ...     print 'welcome to the handler'
 ...
 >>> signal.signal(signal.SIGINT, handler)
 <built-in function default_int_handler>

按ctrl-c:

 >>>
 KeyboardInterrupt
 >>>

我可以验证handler正在安装Python端作为SIGINT的处理程序(调用signal.signal第二个计时器返回我的handler)。如何在Windows上捕获SIGINT?

1 个答案:

答案 0 :(得分:9)

在打开the bug上游后,找到了问题的根本原因并编写了补丁。这个补丁不会进入python 2.x系列。