Python x如何更新旧的Python x.3扩展

2024-05-11 03:31:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用我找到的Python扩展here,但我使用的是python3.1,当我试图编译包(_wincon)中包含的C扩展时,由于所有语法错误,它无法编译。不幸的是,它是为Python的2.x版本编写的,因此包含了PyMember_Get和{}等方法,它们不再是Python的一部分。我的问题是,我还没有开始学习C语言,因此我也没能想出如何修改代码以使用python3.1中仍然有效的语法。(也有一些宏,比如staticforward需要修改,但是我假设这些宏只需要改成static)因此:我该如何解决这个问题?在

(请注意,我确实研究过Python的各种其他Windows控制台接口,例如PyWin32中的win32con扩展),但是没有一个能像这一个那样满足我的需要。)


Tags: 方法代码版本getherewindows语法static
1条回答
网友
1楼 · 发布于 2024-05-11 03:31:28

我不相信有什么灵丹妙药可以将Python扩展的C源代码转换为python3的有效C源代码,这需要了解C和C API是如何变化的,以及该扩展在其代码的每个部分中到底在做什么。相信我,如果我们知道一些神奇的子弹式方法,在没有人类知识和理解的情况下,我们会包括一个“代码生成器”(比如2to3用于Python源代码,甚至有很大的局限性!)对于这样的C代码翻译。在

实际上,尽管python3.1本身就是一种成熟的、可用于生产的语言,但是如果您需要一些python2.*扩展,而在您需要的扩展可用之前(或者您已经学习了足够的C语言),您还不应该在python3.1中迁移代码(或者编写一个全新的应用程序)你自己移植它们或者用Cython重写它们,Cython确实很好地支持python2.*3.*,我相信,程序员只需要稍微注意一下)。在

相关问题 更多 >