用于Windows的Python3.x信号库是否不完整?

用于Windows的Python3.x信号库是否不完整?,python,Python,我使用3.0编写了一个系统脚本,发现在Windows部署中缺少SIGALRM signal和signal.alarm()调用。有人知道为什么这些不见了吗?下面是windows上2.5 vs 3.0信号包的dir()。我还没有发现任何3.0文档提到这个被移动了 编辑:信号do在windows上的Python 25中工作,它们在3.0中被删除。我应该将我的请求改写为“他们去了哪里或变成了哪里”,或者windows 3.0版本还没有完成 python25> python Python 2.5.1

我使用3.0编写了一个系统脚本,发现在Windows部署中缺少SIGALRM signal和signal.alarm()调用。有人知道为什么这些不见了吗?下面是windows上2.5 vs 3.0信号包的dir()。我还没有发现任何3.0文档提到这个被移动了

编辑:信号do在windows上的Python 25中工作,它们在3.0中被删除。我应该将我的请求改写为“他们去了哪里或变成了哪里”,或者windows 3.0版本还没有完成

python25> python
Python 2.5.1 (r251:54863, May 18 2007, 16:56:43)
[GCC 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import signal
>>> dir(signal)
['NSIG', 'SIGABRT', 'SIGALRM', 'SIGBUS', 'SIGCHLD', 'SIGCLD',
'SIGCONT', 'SIGEMT', 'SIGFPE', 'SIGHUP', 'SIGILL', 'SIGINT ', 'SIGIO',
'SIGKILL', 'SIGPIPE', 'SIGPOLL', 'SIGPROF', 'SIGQUIT', 'SIGRTMAX',
'SIGRTMIN', 'SIGSEGV', 'SIGSTOP', 'SIGSYS ', 'SIGTERM', 'SIGTRAP',
'SIGTSTP', 'SIGTTIN', 'SIGTTOU', 'SIGURG', 'SIGUSR1', 'SIGUSR2',
'SIGVTALRM', 'SIGWINCH', 'SIGX CPU', 'SIGXFSZ', 'SIG_DFL', 'SIG_IGN',
'__doc__', '__name__', 'alarm', 'default_int_handler', 'getsignal',
'pause', 'sig nal']

>>> exit()
python25> cd ../python31
python31> python
Python 3.1.1 (r311:74483, Aug 17 2009, 17:02:12) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import signal
>>> dir(signal)
['NSIG', 'SIGABRT', 'SIGBREAK', 'SIGFPE', 'SIGILL', 'SIGINT',
'SIGSEGV', 'SIGTERM', 'SIG_DFL', 'SIG_IGN', '__doc__', '__ name__',
'__package__', 'default_int_handler', 'getsignal', 'set_wakeup_fd',
'signal']
>>>

Windows不是与posix兼容的操作系统,因此它没有所有信号-我猜在3.0上,丢失的信号不再显示在那里。

似乎您正在cygwin中运行2.5,这可能是它显示在那里的原因

Python 2.5.1 (r251:54863, May 18 2007, 16:56:43)
[GCC 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)] on cygwin
在my 2.5 for win32中,它看起来与您的3.1中一样:

Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import signal
>>> dir(signal)
['NSIG', 'SIGABRT', 'SIGBREAK', 'SIGFPE', 'SIGILL', 'SIGINT', 'SIGSEGV', 'SIGTERM', 'SIG_DFL', 'SIG_IGN', '__doc__', '__
name__', 'default_int_handler', 'getsignal', 'signal']

不必讨论posix兼容Windows是如何兼容的,python2.5具有信号并且它们工作的事实可能表明它们在3.0中缺失的原因是由于其他一些决策标准,不是吗?很好,幸运的是,truppos的答案指向了正确的答案。所以这些信号在cygwin(但jottos'3.0是Windows本机的,而不是cygwin)下确实可以工作,一个真诚的DOHH!它正盯着我的脸。我已经使用cygwin很长时间了,它对我来说就像是windows的一部分。仅供参考,我检查了ActiveState的实现,看看他们是否做了额外的努力,遗憾的是,没有。