在Python中集成多less版本必须匹配?

这个问题是关于Python在另一个程序中的集成。 如果我链接到Python,我有一个名为python26.lib或类似的(例如python26.lib )为早期的2.x版本的导入库。 显然,Python 3.x稍微改变了规则,因为我在libs文件夹中find了python3.libpython33.lib

看看导入库的成员,似乎很清楚,例如2.6和2.7之间不会有兼容性。 但是,我可以假设从Python 2.7.3导入库可以使用较旧的Python 2.7 DLL,例如2.7.2或2.7.1? 我不会将Python与我的应用程序一起部署,而是希望将Python集成作为基于已经设置的Python的选项提供。

奖金的问题:鉴于在Python 3的名称更改和python3.dll似乎包含function导出转发器的事实,我可以假设链接到python3.lib将与3.0以上的任何Python 3.x版本?

Python的补丁级别是二进制兼容的,也就是说,当你连接到2.7.3时,二进制也可以与其他2.7.x版本一起工作。 这不会在两个发行版之间起作用(也就是说,您的二进制文件不能在Python 2.6或3.3中使用)。

当您使用python3.dll进行链接时,您可以使用每个python 3.x版本,但是您可以使用C API中的限制:只能使用稳定的ABI(如此处所述)。