拜托,谁能解释为什么我会得到这个错误:
ValueError: invalid signal value
在 Python 2.7.6 和 Python 3.3 下尝试执行此测试代码时
import signal, os
def handler(signum, frame):
print('Signal handler called with signal', signum)
signal.signal(signal.CTRL_C_EVENT, handler)
最佳答案
您不能为 CTRL_C_EVENT
注册信号处理程序,因为它不受支持。
不幸的是,CTRL_C_EVENT 上的 Python 文档不要真正明确地说明这一点:当文档说“信号只能与 os.kill
一起使用时”,他们的意思是字面意思,如“真的,所有您可以像在 os.kill(pid, signal.CTRL_C_EVENT)
中一样使用此信号,因此不要尝试为其注册处理程序。
有关一些背景,请参阅 Python issue 9524 .
是否应该更好地记录这种行为?是的。
关于python 2.7 信号值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23289087/