python - 如果我使用 swig,我是否必须构建多个链接的 .so/.dll 与我想支持的每个 python 版本?
问题描述
我有一个 C/C++ 项目,我在其中使用 swig 与 python 交互。我想知道我是否必须针对每个版本的 python lib 构建以支持我的脚本,或者是否有更简单的方法。我知道我可以使用 distutils 在用户机器上构建,但这并不总是正确的。我想知道其他项目如何处理这个问题。
解决方案
简短的回答 - 是的,您必须为要支持的每个 Python 版本(3.6、3.7、3.8 等)构建不同的 SWIG 包装器。
即使有Python Stable ABI,但就今天(2020 年 3 月)而言,它是不可能使用的,因为它还没有在 SWIG 中实现(参见#1613)。
SWIG #1009中有一个 PR开放,但它已经开放了将近三年。
推荐阅读
- intellij-idea - 异常或错误导致运行中止:org.mockito.internal.progress.ThreadSafeMockingProgress.mockingProgress()L
- php - Laravel API 路由未找到 404
- angular - angular5 单元测试 jasmine+karma
- node.js - 在 docker 容器上运行的 Azure App 服务中提供 *.crt *.pem 证书
- node.js - 如何使用 Node.js 处理不正确的 POST 请求?
- c# - 不是从第一个索引开始 Array2D
- java - 使用 Java 将 Jenkins 管道解析为 JSON(获取两个大括号之间的所有字符串/文本)
- apache-kafka - Scrapy-cluster 回调请求不起作用,卡在处理元直通中间件
- postgresql - 如何将镶木地板文件从 s3 导入到 postgresql rds
- php - 使用 'for' PHP 计算单词