Ubuntu22.04 下 pybind11 搭建,示例

16 篇文章 1 订阅

Pybind11 是一个轻量级的库,用于在 C++ 中创建 Python 绑定。Ubuntu22下安装pybind11步骤如下:

1. 安装 pybind11

1.1 pip 命令安装

pip3 install pybind11

 1.2 源代码安装

安装依赖库:

sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/  pytest

运行命令:

git clone https://github.com/pybind/pybind11.git
cd pybind11
mkdir build
cd build
cmake ..
make -j4
sudo make install  

2.示例1:C++ 调用 Python 函数

add.py:

def add (a, b):
    return a + b

CMakeLists.txt:

#1.cmake verson,指定cmake版本

cmake_minimum_required(VERSION 3.2)

#2.project name,指定项目的名称,一般和项目的文件夹名称对应,声明一个cmake工程,工程名为cmakelist_test

PROJECT(pybind11_test)

# #也可以写上项目的版本号,如下所示

# project(cmakelist_test VERSION 0.1.0)

#3.添加c++ 11标准支持,如果程序中使用了C++11标准,则需要设置告诉编译器,没有可以不用写。

set( CMAKE_CXX_FLAGS "-std=c++17")

#4.设置编译器编译模式,对于编译用的Debug模式和调试用的Release模式,在Debug模式中,程序运行较慢,当可以在IDE中进行断点调试,而Release模式则速度较快,但没有调试信息。不设置默认是Debug模式。

set( CMAKE_BUILD_TYPE "Debug")

# 这行命令让 CMake 寻找 Python 3.6 版本(或更高)的库。REQUIRED 表示这个包是必需的;如果找不到,CMake 会报错。

find_package(PythonLibs 3.6 REQUIRED)

# 这行命令让 CMake 寻找 Pybind11 库。同样地,REQUIRED 表示 Pybind11 是构建此项目所必需的。

find_package(pybind11 REQUIRED )

# 这个命令用于向项目添加头文件搜索路径。

# 这里,${PYTHON_INCLUDE_DIRS} 和 ${pybind11_INCLUDE_DIRS} 是由 find_package 命令找到的 Python 和 Pybind11 的头文件目录。

# 这确保了编译器可以找到所有必需的头文件。

include_directories(${PYTHON_INCLUDE_DIRS})

include_directories(${pybind11_INCLUDE_DIRS})

#add executable file,添加要编译的可执行文件,编译main.cpp,生成可执行文件pybind11_test,也可以将pybind11_test写成${PROJECT_NAME},即为当前项目名称,就是#2中PROJECT(pybind11_test)的项目名字pybind11_test

add_executable(pybind11_test src/main.cpp)

# 指定了构建可执行文件 pybind11_test 时需要链接的库。

# ${PYTHON_LIBRARIES} 是 find_package(PythonLibs) 命令找到的 Python 库,

# 而 pybind11::pybind11 是 Pybind11 提供的目标,用于链接 Pybind11 库。这确保了项目在链接时能找到所有必要的库。

target_link_libraries(pybind11_test ${PYTHON_LIBRARIES} pybind11::pybind11)

编译成功后,在 build 文件夹下会出现 pybind11_test 文件,运行文件即可看到运行结果:

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 VS Code 中安装 pybind11,需要先安装 Python 和 C++ 编译器。 1. 安装 Python 如果你还没有安装 Python,请先安装 Python。你可以从 Python 官网下载安装包,然后按照提示进行安装。 2. 安装 C++ 编译器 pybind11 是一个 C++ 库,因此需要安装 C++ 编译器。在 Windows 上,你可以安装 Visual Studio,或者安装 MinGW。在 Linux 上,你可以安装 GCC。 3. 在 VS Code 中安装 Python 插件 打开 VS Code,点击左侧的扩展图标,在搜索框中输入 Python,选择 Microsoft 的 Python 插件,并点击安装。 4. 安装 pybind11 打开终端(在 VS Code 中,可以使用 Ctrl+` 快捷键打开终端),输入以下命令安装 pybind11: ``` pip install pybind11 ``` 5. 创建 C++ 扩展 在 VS Code 中创建一个新的文件夹,作为你的项目文件夹。在该文件夹下,创建一个名为 `setup.py` 的 Python 脚本文件,用于编译和安装 C++ 扩展。 在 `setup.py` 文件中,引入 pybind11 模块,然后编写 C++ 扩展的编译和安装命令。例如: ```python import os import sys from setuptools import setup, Extension # 引入 pybind11 模块 try: import pybind11 except ImportError: os.system('pip install pybind11') import pybind11 # 定义 C++ 扩展模块 ext_modules = [ Extension( 'example', ['example.cpp'], include_dirs=[pybind11.get_include()], language='c++' ), ] # 编译和安装 C++ 扩展 setup( name='example', ext_modules=ext_modules, zip_safe=False, ) ``` 在上面的代码中,`example.cpp` 是 C++ 扩展的源代码文件。在 `Extension` 中,指定了扩展的名称、源文件、头文件路径和编译语言。在 `setup` 中,指定了扩展的名称和模块列表。 6. 编译和安装 C++ 扩展 在终端中,进入项目文件夹,然后输入以下命令编译和安装 C++ 扩展: ``` python setup.py build_ext --inplace ``` 这个命令会在项目文件夹下生成一个名为 `example.cpython-37m-x86_64-linux-gnu.so` 的共享库文件,其中 `37` 表示 Python 的主版本号,`m` 表示 Python 编译器使用的内存模型,`x86_64-linux-gnu` 表示操作系统和 CPU 架构。 7. 在 Python 中使用 C++ 扩展 在 Python 中,使用 `import` 命令导入 C++ 扩展,就可以使用 C++ 扩展中的函数和类了。例如: ```python import example result = example.add(1, 2) # 调用 C++ 扩展中的 add 函数 print(result) ``` 上面的代码中,`example.add` 调用了 C++ 扩展中的 `add` 函数,并返回了计算结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值