缺少#include <Python.h>
时间: 2023-09-11 16:05:55 浏览: 254
#include_iostream.h_
4星 · 用户满意度95%
非常感谢您指出这个问题!您是正确的,如果要将 C++ 模块绑定到 Python 中,需要包含 Python.h 头文件。我在之前的回答中漏掉了这个关键步骤。下面是一个修正后的示例代码,供您参考:
```c++
#include <Python.h>
#include <pybind11/pybind11.h>
int add(int i, int j) {
return i + j;
}
PYBIND11_MODULE(example, m) {
m.doc() = "pybind11 example plugin"; // 模块文档字符串
m.def("add", &add, "A function which adds two numbers"); // 绑定 add 函数
}
```
编译并链接生成共享库或动态链接库:
```bash
c++ -O3 -Wall -shared -std=c++11 -fPIC `python3 -m pybind11 --includes` example.cpp -o example`python3-config --extension-suffix`
```
测试 Python 模块:
```python
import example
assert example.add(1, 2) == 3
```
再次感谢您指出这个问题!
阅读全文