pybind11 进行native python 模块开发

pybind11 是一个方便快速的基于通过c++快速开发python native 模块的框架,使用简单

支持的特性

  • **接受和返回自定义数据结构的函数**,可以按值传递、按引用传递或通过指针传递
  • **实例方法和静态方法**
  • **重载函数**
  • **实例属性和静态属性**
  • **任意异常类型**
  • **枚举**
  • **回调函数**
  • **迭代器和范围**
  • **自定义操作符**
  • **单继承和多继承**
  • **STL 数据结构**
  • **具有引用计数的智能指针**,如 `std::shared_ptr`
  • **内部引用的正确引用计数**
  • **C++ 类的虚方法(包括纯虚方法)可以在 Python 中扩展**
  • **集成 NumPy 支持**(NumPy 2 需要 pybind11 2.12+)

说明

对于有现成的c++包,需要暴露为python 模块的pybind11是一个不错的选择,对于rust 开发者来说pyo3 是一个很不错的选择,而且不少项目都有使用此框架

参考资料

https://github.com/pybind/pybind11

https://pybind11.readthedocs.io/en/stable/basics.html

https://github.com/PyO3/pyo3

https://pyo3.rs/

posted on 2025-01-07 08:00  荣锋亮  阅读(95)  评论(0)    收藏  举报

导航