1

这个问题是关于将 Python 集成到另一个程序中。如果我链接到 Python,我有一个用于早期 2.x 版本的名为python27.lib或类似名称(例如)的导入库。python26.lib显然 Python 3.x 稍微改变了那里的规则,因为我在文件夹中找到了 apython3.lib和 a 。python33.liblibs

查看导入库的成员,例如,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似乎包含函数导出转发器的事实,我是否可以假设链接python3.lib将适用于从 3.0 开始的任何 Python 3.x 版本?

4

1 回答 1

3

Python 的补丁级别是二进制兼容的,也就是说,当您与 2.7.3 链接时,二进制也可以与其他 2.7.x 版本一起使用。这在版本之间不起作用(也就是说,您的二进制文件不适用于 Python 2.6 或 3.3)。

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

于 2013-05-14T12:16:12.483 回答