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   荣锋亮  阅读(23)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2023-01-07 cosmopolitan 跨平台的c 库
2023-01-07 score 开源工作负载指南
2023-01-07 neon serverless postgres 服务
2022-01-07 oceanbase odc web 部署试用
2022-01-07 oceanbase 几个组件说明
2021-01-07 loki 集成报警通知
2021-01-07 grafana agent 集成tempo 试用

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示