boost::python 入门
作者:NorthPath
时间:2026-06-28
来源:互联网
浏览:0
以VS2019和Python3.7为例,配置DLL项目,设置包含目录与库目录。编写C++模块时,若需静态链接boost_python库,需预定义BOOST_PYTHON_STATIC_LIB宏。编译生成dll后改名为.pyd,在Python中导入模块并调用函数即可。
## boost::python 入门
说真的,把 C++ 代码暴露给 Python 调用,boost::python 算是一条久经考验的老路了。虽然现在有 pybind11 这类新生代库,但 boost::python 在不少遗留项目里仍然是标配。下面就从零开始,把整个配置流程和第一个例子过一遍。
### 安装与环境准备
假设你已经下载好了编译好的 boost 版本,这里以 **VS2019 + Python 3.7(64位)** 为例。解压后,你会看到类似这样的目录结构:
`lib64-msvc-14.2` 文件夹里存放的是 `.lib` 文件,而 `include` 目录则是头文件所在地。
打开 VS2019,新建一个 **DLL 项目**(动态链接库),然后打开项目属性,进行以下设置:
- **包含目录**:分别添加 Python 的 include 路径和 boost 的头文件路径。举个实际例子:
`C:\Users\daimiaopeng\AppData\Local\Programs\Python\Python37\include`
`D:\PATH\boost_1_70_0\boost`
- **库目录**:同样添加两个路径,一个是 boost 的库目录,一个是 Python 的 libs 目录:
`D:\PATH\boost_1_70_0\lib64-msvc-14.2`
`C:\Users\daimiaopeng\AppData\Local\Programs\Python\Python37\libs`
- **链接器 → 输入 → 附加依赖项**:填入 `python37.lib`。
配置完成后,你的项目应该长这样(属性截图参考):
### 编写第一个 C++ 模块
新建一个 `.cpp` 文件,写入以下代码。这里需要注意一个细节:如果希望静态链接 boost_python 库(而不是依赖于动态链接库),需要在 `#include` 之前加上 `#define BOOST_PYTHON_STATIC_LIB`。否则 boost 会默认去链接 boost_python 的 DLL。下面给出一个完整示例:
```cpp
// 如果要静态链接,取消注释下面这行
// #define BOOST_PYTHON_STATIC_LIB
#include
#include
int run(int a)
{
return a;
}
BOOST_PYTHON_MODULE(boost2019)
{
using namespace boost::python;
def("run", run);
}
```
编译生成 `boost2019.dll`,然后把这个文件重命名为 `boost2019.pyd`(Python 动态库的文件后缀)。最后把 `.pyd` 文件放到你 Python 项目的目录下,它就相当于一个 Python 模块了。
### 测试调用
在 Python 环境中,直接 import 这个模块试试看:
```python
import boost2019
print(boost2019.run(1))
```
输出结果是:
```bash
1
```
至此,第一个 boost::python 模块就跑通了。后续你可以在这个基础上扩展更复杂的函数和类,只需要注意处理好类型转换和引用计数就行。
本文内容来源于互联网,如有侵权请联系删除。
### 编写第一个 C++ 模块
新建一个 `.cpp` 文件,写入以下代码。这里需要注意一个细节:如果希望静态链接 boost_python 库(而不是依赖于动态链接库),需要在 `#include` 之前加上 `#define BOOST_PYTHON_STATIC_LIB`。否则 boost 会默认去链接 boost_python 的 DLL。下面给出一个完整示例:
```cpp
// 如果要静态链接,取消注释下面这行
// #define BOOST_PYTHON_STATIC_LIB
#include
作者最新文章
贵州省住建厅与贝壳集团签署旅居战略合作:五大维度落地方案解析
2026-09-08 18:13
上海链家安住APP:业主主动卖房功能与成交数据解析
2026-09-08 18:11
如何批量将PPT转成PDF格式?PPT转PDF工具怎么选?
2026-09-04 16:03
PDF文件怎么压缩?3个小技巧帮你减小体积
2026-09-03 18:03
小批量试产总结报告:新产品量产导入评审实战指南
2026-09-02 19:48
上一篇:
python函数
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多
Windows 10
Windows
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式
Windows/macOS/Linux
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















