我想使用我找到的Python扩展here,但我使用的是python3.1,当我试图编译包(_wincon)中包含的C扩展时,由于所有语法错误,它无法编译。不幸的是,它是为Python的2.x版本编写的,因此包含了PyMember_Get
和{staticforward
需要修改,但是我假设这些宏只需要改成static
)因此:我该如何解决这个问题?在
(请注意,我确实研究过Python的各种其他Windows控制台接口,例如PyWin32中的win32con扩展),但是没有一个能像这一个那样满足我的需要。)
我不相信有什么灵丹妙药可以将Python扩展的C源代码转换为python3的有效C源代码,这需要了解C和C API是如何变化的,以及该扩展在其代码的每个部分中到底在做什么。相信我,如果我们知道一些神奇的子弹式方法,在没有人类知识和理解的情况下,我们会包括一个“代码生成器”(比如2to3用于Python源代码,甚至有很大的局限性!)对于这样的C代码翻译。在
实际上,尽管python3.1本身就是一种成熟的、可用于生产的语言,但是如果您需要一些python2.*扩展,而在您需要的扩展可用之前(或者您已经学习了足够的C语言),您还不应该在python3.1中迁移代码(或者编写一个全新的应用程序)你自己移植它们或者用Cython重写它们,Cython确实很好地支持python2.*和3.*,我相信,程序员只需要稍微注意一下)。在
相关问题 更多 >
编程相关推荐