栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pybind11使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pybind11使用

背景

有时需要python调用cpp编写的函数(比如做一些高性能计算),这时可以考虑使用pybind11来对你的cpp代码封装成库方便python调用.

使用方法
  1. 安装pybind11
python -m pip install pybind11
  1. 链接cpp
    最好的教程自然是官方的,入门请看链接
    如果你需要使用cmake来集成,可以用下面的方式集成
find_package(pybind11 CONFIG REQUIRED)

# Create an extension module
add_library(mylib MODULE main.cpp)
target_link_libraries(mylib PUBLIC pybind11::module)

# Or embed the Python interpreter into an executable
add_executable(myexe main.cpp)
target_link_libraries(myexe PUBLIC pybind11::embed)

当然,有时我们的安装位置cmake找不到,可以用下面命令来指定pybind11包的查找路径.

python3.8 -m pybind11 --cmakedir
# /home/lyy/.local/lib/python3.8/site-packages/pybind11/share/cmake/pybind11
ls /home/lyy/.local/lib/python3.8/site-packages/pybind11/share/cmake/pybind11
# FindPythonLibsNew.cmake  pybind11Common.cmake  pybind11Config.cmake  pybind11ConfigVersion.cmake  pybind11NewTools.cmake  pybind11Targets.cmake  pybind11Tools.cmake

可以看到pybind11的cmake安装路径并不是cmake默认的查找路径,pybind11Config.cmake中有这么几行:

``pybind11_DIR``
  CMake variable, set to directory containing this Config file.

所以可以在cmakelists中添加下面一行来指定查找路径

set(pybind11_DIR  /home/lyy/.local/lib/python3.8/site-packages/pybind11/share/cmake/pybind11)

接下来再去find_package就不会有问题了.

pybind11对opencv的支持

github有个仓库pybind11_opencv_numpy, 作者定义了一个ndarray_converter来让cpp代码与python共享一个numpy数据,速度还是很快的.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/931943.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号