首页 > 解决方案 > 如果我使用 swig,我是否必须构建多个链接的 .so/.dll 与我想支持的每个 python 版本?

问题描述

我有一个 C/C++ 项目,我在其中使用 swig 与 python 交互。我想知道我是否必须针对每个版本的 python lib 构建以支持我的脚本,或者是否有更简单的方法。我知道我可以使用 distutils 在用户机器上构建,但这并不总是正确的。我想知道其他项目如何处理这个问题。

标签: pythonpython-3.xswig

解决方案


简短的回答 - 是的,您必须为要支持的每个 Python 版本(3.6、3.7、3.8 等)构建不同的 SWIG 包装器。

即使有Python Stable ABI,但就今天(2020 年 3 月)而言,它是不可能使用的,因为它还没有在 SWIG 中实现(参见#1613)。

SWIG #1009中有一个 PR开放,但它已经开放了将近三年。


推荐阅读