python 2.7 信号值错误

标签 python python-2.7 signals

拜托,谁能解释为什么我会得到这个错误:

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/

相关文章:

python - Django:使用动态字段加载表单

python - 如何将文件导入到python中

c - 两个进程之间的顺序信号

python - 在测试中连接 Django 信号处理程序

python-2.7 - 为什么链式(区间)比较不能在 numpy 数组上工作?

c - 在 C 中将字符写入管道

python - Django:在运行服务器之后立即运行脚本

java - 使用waf构建Java项目

python - pandas read_table 中的 usecols 结果为 "list index out of range"

python - 比较 Pandas 中不同行之间的值