使用 Rust 加速你的 Python: PyO3使从 Python 调用 Rust 代码变得容易。您可以编写 Rust 库,并依靠 PyO3 和生态系统中maturin的支持工具的组合PyO3来编译 Rust 库并将其作为 Python 模块直接安装。其中,PyO3 可以在 Python 和 Rust 之间转换类型,并且可以通过一组宏轻松地将 Rust 函数导出到 Python。
在这篇博文中,我将简要介绍 PyO3。之后,我将讨论几个用 Rust 编写并从 Python 调用的示例函数。这些例子包括:
- 在 Python 和 Rust 中计算第 n 个斐波那契数
- 让 Python 在 Rust 函数中使用多种类型
- 在 Python 代码中使用 Rust 结构
- 使用 Python 将 JSON 发送到 Rust 并将该 JSON 序列化为结构
- 允许 Rust 从 Python 运行时使用记录器
- 在 Rust 中生成错误并将其作为异常在 Python 中捕获
PyO3 简介
PyO3 为想要将 Rust 和 Python 代码粘合在一起的人们提供了一些人体工程学设计。它可以帮助您从 Rust 调用 Python 代码以及从 Python 调用 Rust 代码。由于我只使用它从 Python 调用 Rust 代码,这是我在这里写的唯一内容。
那么 PyO3 给你什么?
首先,有maturin 。该工具将为您编译 Rust 代码,并将编译后的代码作为 Python 模块安装在您的虚拟环境中。之后,您可以在 Python 代码中导入此模块并使用