首页 > 编程语言 >Pybind11和CMake构建python扩展模块环境搭建

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

时间:2024-07-17 14:32:23浏览次数:16  
标签:__ venv cmake pybind11 python Pybind11 CMake example

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

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

拉取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

安装成功后就赶进在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

标签:__,venv,cmake,pybind11,python,Pybind11,CMake,example
From: https://www.cnblogs.com/mrchip/p/18307279

相关文章

  • python接口测试示例
    1、从sql读取需要的内容,作为接口的请求参数的一部分,生成请求的body,再去请求接口1importrequests2importpymysql3importjson456conn=pymysql.connect(host="172.16.11.118",port=3306,user="root",passwd="123456",db="digital_energy_base&......
  • 从基础到高级应用,详解用Python实现容器化和微服务架构
    本文分享自华为云社区《Python微服务与容器化实践详解【从基础到高级应用】》,作者:柠檬味拥抱。Python中的容器化和微服务架构实践在现代软件开发中,容器化和微服务架构已经成为主流。容器化技术使得应用程序可以在任何环境中一致运行,而微服务架构通过将应用拆分成多个独立的服务......
  • windows11 使用pytorch transformers运行Qwen2-0.5B-Instruct模型 (基于anaconda pyth
    吾名爱妃,性好静亦好动。好编程,常沉浸于代码之世界,思维纵横,力求逻辑之严密,算法之精妙。亦爱篮球,驰骋球场,尽享挥洒汗水之乐。且喜跑步,尤钟马拉松,长途奔袭,考验耐力与毅力,每有所进,心甚喜之。 吾以为,编程似布阵,算法如谋略,需精心筹谋,方可成就佳作。篮球乃团队之艺,协作共进,方显力......
  • 华为OD机试D卷 --找座位--24年OD统一考试(Java & JS & Python & C & C++)
    文章目录题目描述输入描述输出描述用例题目解析java源码python源码javascript源码c源码c++源码题目描述在一个大型体育场内举办了一场大型活动,由于疫情防控的需要,要求每位观众的必须间隔至少一个空位才允许落座。现在给出一排观众座位分布图,座位中存......
  • 华为OD机试D卷 --密码输入检测--24年OD统一考试(Java & JS & Python & C & C++)
    文章目录题目描述输入描述输出描述用例题目解析java源码python源码javascript源码c源码c++源码题目描述给定用户密码输入流input,输入流中字符‘<’表示退格,可以清除前一个输入的字符,请你编写程序,输出最终得到的密码字符,并判断密码是否满足如下的密......
  • 初学Python必须知道的14个强大单行代码
    引言:Python的魅力与单行代码的重要性Python以其简洁明了的语法、丰富的内置函数和强大的第三方库深受广大开发者喜爱。尤其对于编程小白来说,学习Python就像打开了一扇通向编程世界的大门。而单行代码,作为Python魅力的一部分,不仅能展现其语言的优雅与高效,更能帮助初学者快速掌......
  • Windows中安装python/cmd中执行python命令无效
    1、问题阐述?本文章提供非常详细的安装教程。本文章适合于不会安装python或者安装了python后,在cmd中执行python命令无效的情况。2、下载pythonpython下载官网地址:DownloadPython|Python.org在下面的框子中选择你需要的版本如果是windows选择如下包如下版本下载地址:ht......
  • python 常用的100个小功能,你知道几个?
    这本书牛,适合Python已入门,看看各种一行代码能干的事情,绝对提神。本书一共150页,包括各种一行代码所能做的事情,具体有Python小技巧、数据科学、机器学习、正则表达式和算法六大章节:img此书可谓前无古人,后无来者,我非常喜爱它,今天发出pdf版本与你共享。这是章节......
  • Python turtle 无图 25行 天地良心 大乌龟吃小乌龟
    """家人们太给力了20分钟250阅读10赞但是想憋波大的所以更新更晚了一天 今天要求降低一半本期新规矩:七步成诗12h5赞花絮7.5赞Python15赞c++ 都没到不更新"""发明人:苦瓜想干飞日本发明项目:大乌龟吃小乌龟银河系10后小伙发明了一种大乌龟吃小乌龟的程序爱赚钱......
  • Python3 基础语法
    目录标识符python保留字注释行与缩进多行语句数字类型字符串(String)等待用户输入(input)同一行显示多条语句print输出标识符第一个字符必须是字母表中字母或下划线 _ 。标识符的其他的部分由字母、数字和下划线组成。标识符对大小写敏感。在Python3中,可......