利用pybind是python可调用c++程序
时间: 2024-04-11 12:28:37 浏览: 19
是的,你可以使用pybind11来将C++程序封装成Python可调用的模块。Pybind11是一个轻量级的C++库,可以实现Python和C++之间的无缝交互。
首先,你需要安装pybind11库。你可以通过以下命令使用pip安装:
```
pip install pybind11
```
接下来,你可以创建一个C++源文件,例如example.cpp,编写你想要封装的C++函数和类。
```cpp
#include <pybind11/pybind11.h>
int add(int a, int b) {
return a + b;
}
PYBIND11_MODULE(example, m) {
m.def("add", &add, "A function which adds two numbers");
}
```
然后,你可以创建一个CMakeLists.txt文件来构建你的C++模块:
```
cmake_minimum_required(VERSION 3.12)
project(example)
set(CMAKE_CXX_STANDARD 11)
add_subdirectory(pybind11)
pybind11_add_module(example example.cpp)
```
接下来,在终端中运行以下命令来构建你的C++模块:
```
mkdir build
cd build
cmake ..
make
```
构建完成后,你会得到一个名为example.so(在Windows上是example.pyd)的共享库文件。
最后,你可以在Python中导入刚刚构建的模块并调用其中的函数:
```python
import example
result = example.add(1, 2)
print(result) # 输出3
```
这样,你就可以利用pybind11将C++程序封装成Python可调用的模块了。希望能对你有所帮助!