pybind11学习 | VS2022下安装配置

pybind11是一个只有头文件(header-only)的轻量级库,其主要目的是建立C++的Python代码绑定,实现C++和Python无缝连接。我学习这个工具的目的,是为了能够在Python中调用C++代码实现一些计算密集型任务,同时培养自己的混合编程的能力。

1 环境

  • Windows11
  • VS2022
  • pybind11
  • Anaconda3 , with python 3.8

2 源码下载

首先去GitHub上将项目源码(https://github.com/pybind/pybind11)克隆下来。

pybind11学习 | VS2022下安装配置_第1张图片

Git命令行:git clone https://github.com/pybind/pybind11.git

pybind11 是 header-only 的,不需要编译动态链接库,直接使用即可。
pybind11学习 | VS2022下安装配置_第2张图片

3 VS配置

  • 在VS2022中新建一个C++工程。

  • 设置编译输出类型
    pybind11学习 | VS2022下安装配置_第3张图片
    pybind11学习 | VS2022下安装配置_第4张图片

  • 设置include包含路径
    pybind11学习 | VS2022下安装配置_第5张图片

  • 设置lib路径
    pybind11学习 | VS2022下安装配置_第6张图片

  • 设置链接器

pybind11学习 | VS2022下安装配置_第7张图片

这里的lib文件名取决于Anaconda3中的python版本。

4 测试

在VS中新建源文件pybind11_test.cpp,编译下面的测试代码:

#include

namespace py = pybind11;

PYBIND11_MODULE(example, m) {

    m.doc() = "pybind11 example module";

    // Add bindings here
    m.def("foo", []() {
        return "Hello, World!";
    });

}

生成解决方案,得到lib文件和pyd文件。

pybind11学习 | VS2022下安装配置_第8张图片
pybind11学习 | VS2022下安装配置_第9张图片

有了上面两个文件,我们就能实现在Python中调用C++代码的目的了。

我们将这两个文件重命名为example后复制到python工程的根目录,然后新建一个.py文件执行下面代码进行测试。

import example
print(example.foo())

输出如下:

pybind11学习 | VS2022下安装配置_第10张图片

至此,pybind11的安装和配置完成,测试成功!

5 总结

后面开展对pybind11官方文档的学习,希望自己坚持一学一记!

参考

官方文档:pybind11 documentation

官方文档中文翻译:pybind11-Chinese-docs: pybind11中文文档

pybind11使用 - 简书 (jianshu.com)

你可能感兴趣的:(pybind11,python,c++,pybind11,学习记录)