将包含抽象类和普通类C++包导出到 Python
Export C++ Package with Abstract and Normal Classes to Python
我想将很多抽象和普通类从C++导出到Python。它本质上是一个用C++编码的整个包,并希望它在Python中运行。而不是单独包装每个类,有没有办法轻松包装它们并让它们在 Python 中工作?
使用 cppyy (http://cppyy.org( 是一个选项,并且几乎是自动的:只需加载标头和库。如果确实有大量的标头,那么您可以预编译它们。模板的实例化和交叉继承是在运行时动态完成的,因此不需要准备。
boost python和 pybind11 允许您将C++类"导出"为 python 对象。 两者都提出了基于模板的类似方法。据说Pybind11解决方案更容易使用。如果你使用Microsoft工具链,你可以参考这个页面,了解如何使用 pybind11 设计/构建 python 绑定:
https://learn.microsoft.com/en-us/visualstudio/python/working-with-c-cpp-python-in-visual-studio?view=vs-2019
是的,如果您使用 pybind11 来包装您的C++代码,这是可能的。但是你需要围绕它创建一个包装类。 这里有一个例子
SWIG是另一种可能性。这个使用您现有的C++头文件。请参阅此处并转到第 6.6.3 节,以强制使用 %feature 创建自定义抽象类构造函数
%feature("notabstract") YourClassHere
相关文章:
- 如何反转整数参数包
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- cmake如何在fedora工作站中找到boost静态库包
- 如何将enable-if与模板参数和参数包一起使用
- conan有没有办法导出一个空目录
- 将浮动的heightmap数组导出为16位原始值
- 在没有Xcode的情况下在Mac捆绑包中嵌入框架
- 为什么这个音频包络不能通过开关的情况?
- 如何创建从Maya(或类似程序)到虚幻引擎的自定义数据导出插件
- 将位字段导出到数组
- 模板元编程:如何将参数包组合成新的参数包
- 如何将C++闭包与变量参数同时重用——类似于JavaScript
- 导入/导出变量时出错
- AcquireCredentialsHandleA() 返回 PFX 文件的0x8009030e(安全包中没有可用的凭据
- C ++:在构造函数中使用参数包?
- struct.error:解压缩 C++ 结构时,解包需要 288 字节的缓冲区
- 将包含抽象类和普通类C++包导出到 Python
- 更改 R 包的导出模式以隐藏 Rcpp 函数
- CMake:多库包导出中的依赖项管理
- CMake 导出依赖于外部库的包