Pybind11和CMake构建python扩展模块环境搭建

cnblogs 2024-07-17 15:09:00 阅读 53

本文介绍使用CMake构建工具链基于Pybind11利用C++构建Python的拓展模块

使用pybind11的CMake模板来创建拓展环境搭建

从Github上下载cmake_example的模板,切换分支,并升级pybind11子模块到最新版本

拉取<code>pybind11使用cmake构建工具的模板仓库

git clone --recursive https://github.com/mrchipset/cmake_example.git

切换分支

git checkout -b dev

升级submodule并切换到最新的v2.11.0版本

git submodule update --remote

cd pybind11

git checkout v2.11.0

为了不破坏原有的python环境,我们新建一个虚拟的python环境,并切换到虚拟环境中进行实验

python3 -m venv venv

source venv/bin/activate

使用pip进行编译和构建,确保正确安装了cmakeC++的编译工具链

pip install ./cmake_example

apl6QqY15fgkrzs4aMd3dd5s4N4_pP6iuqlKRIclbmQ.png

安装成功后就赶进在<code>python中导入包试试吧

(venv) mrchip@ubuntu22:~/src/demo/cmake_example$ python

Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import cmake_example

>>> cmake_example.__version__

'0.0.1'

>>> dir(cmake_example)

['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '__version__', 'add', 'subtract']

>>> cmake_example.add(1, 2)

3

>>> cmake_example.subtract(1, 4)

-3

>>>

如果到这里都完成了,那么整明我们的pybind11开发环境已经搭建完成了,下一期我们将深入这个模板工程来了解一些pybind11构建拓展的基本操作流程

踩坑记录

如果直接cmake configure不过,那么需要检查是否安装了python的开发库其中包含了python头文件和链接库

sudo apt install python3-dev libpython3-dev

如果无法创建python虚拟环境,安装这个模块

sudo apt install python3-venv

如果没有安装编译环境那么可以先安装cmake和gcc等工具链

sudo apt install cmake build-essential gdb



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。