2013-05-04 45 views
4

即使我在Cygwin中运行python脚本,Python信号在Windows上似乎也不起作用。我得到了AttributeError: 'module' object has no attribute SIGALRM即使在Cygwin上,Python信号也不起作用?

有没有办法在Windows上绕过这个。我只是在http://docs.python.org/2/library/signal.html的末尾运行示例

+1

通过Cygwin安装Python吗? – Blender 2013-05-04 06:45:10

+2

一个信号是一个Posix的东西,很可能不会在Windows上工作。 Cygwin只是翻译层,可能不会将信号语义翻译成Windows使用的任何语言(但我不确定,我必须测试它)。 – Keith 2013-05-04 06:47:07

+0

事实上,通过Cygwin安装Python(setup-x86_64.exe在我的案例中)为我解决了这个问题。 – 2016-11-17 00:12:02

回答

6

SIGALRM在Windows中不起作用。从documentation

在Windows中,信号()只能用SIGABRT,SIGFPE,SIGILL,SIGINT,SIGSEGV,或SIGTERM调用。任何其他情况下都会引发ValueError。

This question解决在Windows中获得SIGALRM等效的主题。 this question也类似。

+0

为什么[此代码]在Python 2上工作(http://stackoverflow.com/questions/366682/how-to-limit-execution-time-of-a-function-call-in-python/601168#601168)在Windows上(如果我没记错的话),并在Windows上打破Python 3?也许我正在使用通过cygwin安装的Python ... – 2016-11-16 23:09:54

+0

事实上,安装Cygwin附带的Python为我工作。 – 2016-11-17 00:04:52

相关问题