JAB*_*JAB 2 c python windows console
我想使用我在这里找到的Python扩展,但是我正在使用Python 3.1,当我尝试编译包中包含的C扩展(_wincon)时,由于所有语法错误,它都无法编译.不幸的是,它是为2.x版本的Python编写的,因此包括诸如PyMember_Get和的方法PyMember_Set,它们不再是Python的一部分.我的问题是我还没有学习C,因此无法弄清楚如何修改代码以使用在Python 3.1中仍然有效的语法.(还有一些像staticforward需要修复的宏,但我认为只需要改变它们static.)因此:我该如何解决这个问题呢?
(请注意,我确实已经研究过各种其他用于Python的Windows控制台界面,例如PyWin32中的win32con扩展),但它们都不符合我的需求,就像这个看起来那么多.)
我不相信有任何神奇的内容可以将Python扩展的C源代码编写为Python 2的旧版本,编译为Python 3的有效C源代码 - 它需要理解C和如何C API已经改变,以及扩展在其代码的每个部分中做了什么.相信我,如果我们知道一些神奇的子弹方式,在没有这些人类知识和理解的情况下基本上做到这一点,我们就已经包含了一个"代码生成器"(比如2到3的Python源代码 - 甚至有很大的限制!)这样的C代码翻译.
实际上,即使Python 3.1 本身就是一种成熟且适合生产的语言,如果你需要一些你无法使用的Python 2.*扩展,你不应该在Python 3.1中迁移你的代码(或者编写一个全新的应用程序).到端口 - 坚持使用2.6,直到你需要的扩展可用(或者你已经学会了足够的C来自己移植它们 - 或者在Cython中重写它们,它可以顺利地支持Python 2.*和 3.*,我相信,对程序员来说只是一点点关心).