C++库的 Python 包装器
Python wrapper for C++ Library
我有.so C++库(没有源代码)和.h头文件,我想在某个Python项目中使用此库。
我用谷歌搜索了一下,发现我可以使用Boost.Python或SWIG来为C++库制作包装器。但是我还没有找到示例或手册如何处理已经编译的 SWIG 库。
至于 Boost.Python,我还没有找到使用头文件自动包装所有函数的手册(只找到如何包装,例如一个函数)。
我正在寻找可以提供帮助的示例或链接。感谢您的阅读。
使用 SWIG
包装仅包含头文件和 DLL/SO 的库与使用 SWIG 包装任何其他库没有什么不同。在其最基本的形式中,您将定义一个接口:
%module my
%{
#include "my.h"
%}
%include "my.h"
然后运行 SWIG:
swig -python my.i
并编译
gcc -Wall my_wrap.c -shared -o _my.so -lpython -I/path/to/python -lmy
重要的是,您已经链接到实现.h文件中函数/类的库(-lmy
),但是您必须正常执行此操作才能生成与SWIG的接口。
(如果您使用的是其他编译器,则显然需要调整上述内容)
相关文章:
- 元组由 Swig 生成的 Python 包装器返回,用于C++向量
- 使用 Python Extension API 包装复杂C++类
- 尝试通过Process Pipe发送/接收到python包装器,c ++代码
- "Cannot convert Python object argument to type '<typename>'" - 使用 Cython 包装 C++ 类时出错
- 如何将 c++ 类包装到 python 中,以便我可以使用 pybind11 访问其成员的公共方法(成员是一个对象指针)
- 如何在 python 包装中使用 unicode 字符串用于带有 cython 的 c++ 类?
- 将多个C 类包装成一个Python类
- Swig C++ python 包装器文件解释
- 如何将 Python 中的字节对象传递给用 Swig 包装的C++函数
- Boost Python - 用参数包装构造函数
- 使用 SWIG 将C++类包装在 Python 中
- Python目标包装C++类的SWIG错误
- 当我使用py 生成时,然后在macOS上boost.python包装器时,我会发现有关std :: string的错
- 在C 中解开包装的类似Python的动态参数
- 用python包装C++代码(手动)
- 为 c++ 代码编写 python 包装器
- 提升 Python 导入失败,未定义包装类的符号
- 如何使用 SWIG 将运算符<<包装为__str__ Python?
- 将图像从Python包装器传递到C 功能
- 包装 python 的 c++ 类(使用 opencv)会给出错误