我正在尝试在QNX上运行twisted / crossbar.io(目标:powerpc-unknown-nto-qnx6.5.0),但是看起来QNX没有siginterrupt()
和{{1} }标志不受支持。因此,嵌入式python中不存在signals.siginterrupt()。
有没有办法在像这样的系统上运行/修补python / twisted?现在它在安装处理程序时死亡,因为SA_RESTART
模块没有signals
。即使在旧的2.6天内,当iternet /信号被构建为c库时,它们仍然依赖于使用SA_RESTART实现siginterrupt。
还有其他选择吗?
答案 0 :(得分:1)
你试过reactor.run(installSignalHandlers=False)
吗?这限制了反应堆的功能,但它可能让你一瘸一拐。
答案 1 :(得分:1)
有没有办法在像这样的系统上运行/修补python / twisted?
一般答案是"端口扭曲到您的目标平台"。 Twisted与其运行的平台进行了广泛的交互。你可以用一个简单的补丁在一个地方欺骗它而不是AttributeError
,但这并不意味着Twisted实际上会按照预期的方式行事。
你有计划完成Twisted到QNX的移植工作吗?或者你只是用手指划过信号问题,其他一切都会正常工作?至少,您应该运行测试套件以查看可能存在问题的位置(尽管通过测试也不能保证Twisted实际上正常工作,因为这些测试都是在考虑其他平台的情况下编写的)。
更具体的答案是,您可以获取twisted.internet._signals
模块的旧版本(尝试r35834; r35835删除了许多旧的支持代码)。 Python 3移植工作从该模块中删除了一些备用(不是很好但更便携)的信号处理策略。