ubuntu20 pybind11
时间: 2024-12-30 19:31:28 浏览: 6
### 安装 pybind11
对于希望在 Ubuntu 20.04 上安装并使用 `pybind11` 的用户来说,可以按照如下方法操作。
#### 方法一:通过 APT 包管理器安装
由于 `pybind11` 已经被纳入官方仓库,在大多数情况下可以直接利用系统的包管理工具来完成安装工作。打开终端输入命令:
```bash
sudo apt update && sudo apt install python3-pybind11
```
这条指令会自动下载并配置好最新稳定版的 `pybind11` 库及其依赖项[^1]。
#### 方法二:从源码编译安装
如果需要特定版本或者最新的特性支持,则可以从 GitHub 获取项目源代码自行构建。具体步骤如下所示:
1. 首先确保已经安装了必要的开发环境组件:
```bash
sudo apt-get install cmake g++ python3-dev
```
2. 接着克隆仓库到本地机器上:
```bash
git clone https://github.com/pybind/pybind11.git
cd pybind11
```
3. 使用 CMake 构建并安装:
```bash
mkdir build; cd build
cmake ..
make
sudo make install
```
以上两种方式都可以成功地将 `pybind11` 设置完毕以便后续调用。
#### 测试安装是否成功
为了验证安装过程无误以及能够正常使用该库的功能,可以通过编写简单的 Python 绑定程序来进行测试。创建一个新的文件夹用于存放实验性的绑定模块,并依次执行下面的操作:
1. 创建名为 `example.cpp` 的C++ 文件,内容如下:
```cpp
#include <pybind11/pybind11.h>
int add(int i, int j) {
return i + j;
}
PYBIND11_MODULE(example, m) {
m.doc() = "pybind11 example plugin"; // optional module docstring
m.def("add", &add, "A function which adds two numbers");
}
```
2. 编写 setup.py 脚本来简化编译流程:
```python
from setuptools import setup, Extension
import pybind11
ext_modules = [
Extension(
'example',
['example.cpp'],
include_dirs=[pybind11.get_include()],
language='c++'
),
]
setup(
name="example",
ext_modules=ext_modules,
requires=['pybind11']
)
```
3. 执行编译命令生成共享对象文件(即.so),这一步骤将会读取刚才定义好的设置信息并将 C++ 源文件转换成可以在Python 中加载的形式:
```bash
python3 setup.py build_ext --inplace
```
4. 最终在一个新的 Python 解释器实例里尝试导入刚刚建立起来的例子插件,并调用其中的方法查看返回的结果是否符合预期:
```python
>>> import example
>>> print(example.add(1, 2))
3
```
当看到输出结果为整数 `3` 时就说明一切正常运作良好。
阅读全文