pybind11-Installation
Introduction
pybind11 是一个轻量级的纯头文件库,可以在 Python 中公开 C++ 类型,反之亦然,主要用于创建现有 C++ 代码的 Python 绑定。它的目标和语法与 David Abrahams 的 Boost.Python 库相似:通过使用编译时自省推断类型信息,最大限度地减少传统扩展模块中的模板代码。
pybind11 is a lightweight header-only library that exposes C++ types in Python and vice versa, mainly to create Python bindings of existing C++ code. Its goals and syntax are similar to the excellent Boost.Python library by David Abrahams: to minimize boilerplate code in traditional extension modules by inferring type information using compile-time introspection.
Git Clone Source Code
首先在你想下载的文件夹下(我的是 D:\
) git clone pybind11 的源码后进行构建,并运行测试用例
1 |
|
如果没有报错则安装成功
Visual Studio Project Properties Configuration
创建一个 Visual Studio 的一个空项目,并新建一个 .cpp 文件,以一个简单的加法程序作为测试
1 |
|
接着我们打开项目的 Property Pages (属性页),修改 Configuration Type 为 Dynamic Library(.dll)
这里需要注意我们要使上一行 Target Name (默认和 ProjectName 相等) 和 PYBIND11_MODULE
的模块名一致,否则后面从 python import 时候会报错。
然后在 Advanced 中修改后缀名称为 .pyd
接着我们需要在 C/C++ 的 General 选项卡中添加 python 和 pybind11 的包含目录,我是通过 miniconda 安装的 python,因此 python.h 所在的包含目录位置为 C:\Users\$(UserName)\miniconda3\include
. pybind11 的包含目录在刚才 git clone 源码的文件夹下 D:\pybind11\include
然后在 Linker 的 General 选项卡中添加 python 的库目录 (前文已经说过 pybind11 是一个 header—only 库) C:\Users\$(UserName)\miniconda3\libs
右键项目进行 build,成功后会在项目目录下的 x64\Debug
文件夹下 生成 .pyd 文件,可以在命令行中进行测试。