发布时间:2026/7/22 3:13:35
python通过rust编写组件扩展自己的能力 PyO3 Maturin 完整安装与使用手册一、基础项目信息1.1 PyO3 核心信息表格项目内容GitHub 地址https://github.com/PyO3/pyo3官方文档https://pyo3.rs开源协议MIT / Apache-2.0 双协议支持免费商用稳定版本0.23.xPython 支持Python 3.8兼容 CPython、PyPy、GraalPy配套构建工具maturin官方推荐1.2 Maturin 核心信息maturin 为 PyO3 配套构建工具用于将 Rust 代码编译为 Python 可直接安装的.whl包表格项目内容GitHub 地址https://github.com/PyO3/maturin官方文档https://www.maturin.rs最新版本1.12.22026 年 3 月发布开源协议Apache-2.0 / MIT 双协议二、前置环境安装2.1 安装 Rust 工具链bash运行# 一键安装 rustup、rustc、cargo curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh安装完成后重启终端验证安装bash运行rustc --version cargo --version2.2 安装 maturin三选一uv 方案推荐bash运行# 方案1uv 安装推荐适配 uv 项目工作流 uv tool install maturin # 方案2pipx 安装 pipx install maturin # 方案3原生 pip 安装 pip install maturin验证 maturin 是否生效bash运行maturin --version三、完整项目开发流程3.1 创建 PyO3 混合项目bash运行# 新建项目 my_fast_tool maturin new my_fast_tool cd my_fast_tool自动生成目录结构plaintextmy_fast_tool/ ├── Cargo.toml # Rust 依赖配置 ├── pyproject.toml # Python 打包规范配置 └── src/ └── lib.rs # Rust 核心代码Python 导出逻辑3.2 编写 Rust 导出代码src/lib.rsrust运行use pyo3::prelude::*; // 标记函数可暴露至 Python #[pyfunction] fn fast_calculate(numbers: Veci64) - i64 { numbers.iter().sum() } // 模块入口注册所有导出函数 #[pymodule] fn my_fast_tool(m: Bound_, PyModule) - PyResult() { m.add_function(wrap_pyfunction!(fast_calculate, m)?)?; Ok(()) }3.3 编译项目两种模式模式 1开发调试热加载推荐日常迭代编译后自动安装至当前虚拟环境修改代码无需手动重装bash运行maturin develop模式 2生产打包生成 whl 安装包bash运行maturin build --release产物输出目录target/wheels/3.4 使用 uv 安装编译后的 whl 包bash运行# 写入项目依赖更新 pyproject.toml uv add ./target/wheels/my_fast_tool-0.1.0-cp312-cp312-linux_x86_64.whl # 仅安装至虚拟环境不修改项目配置 uv pip install ./target/wheels/my_fast_tool-0.1.0-cp312-cp312-linux_x86_64.whl3.5 Python 调用 Rust 代码python运行import my_fast_tool res my_fast_tool.fast_calculate([1, 2, 3, 4, 5]) print(res) # 输出 15四、发布至 PyPI可选方式 1maturin 一键发布bash运行maturin publish方式 2maturin 打包 uv 发布bash运行# 先构建 release 包 maturin build --release # 使用 uv 上传至 PyPI uv publish五、整体流程总结plaintext安装 Rust maturin ↓ maturin new 创建混合项目 ↓ 编写 src/lib.rs Rust 业务代码 ↓ maturin develop 本地调试 或 maturin build --release 生成 whl 包 ↓ uv add / uv pip install 安装编译包 ↓ Python import 直接调用 Rust 高性能函数

相关新闻

2026/7/22 3:13:35

VITURE Auto Immersive 3D:安卓实时2D转3D技术实践指南

这次我们来看一个很有意思的技术发布——VITURE 推出的 Auto Immersive 3D 技术。这个技术最核心的价值在于,它能让普通的安卓系统实时实现 3D 立体化效果,不需要依赖特殊的硬件或复杂的开发流程。如果你关心移动端 3D 渲染、AR/VR 应用开发,…

2026/7/22 3:03:19

CodeGraph技术解析:代码知识图谱与开发效率提升

1. CodeGraph技术解析:如何实现70%工具调用削减CodeGraph本质上是一个本地化的代码知识图谱引擎,它通过静态分析构建项目的语义网络。与传统的文本搜索工具不同,CodeGraph将代码库中的符号(函数、类、方法等)及其关系&…

2026/7/22 4:48:39

深度学习中的批归一化技术原理与实践

1. 批归一化技术背景解析批归一化(Batch Normalization)是2015年由Ioffe和Szegedy提出的深度学习关键技术,它通过规范化神经网络中间层的激活值分布,显著提升了深层网络的训练效率和模型性能。这项技术现已成为现代深度神经网络架构的标准组件&#xff0…

2026/7/22 4:48:39

深度学习核心函数解析与贝叶斯优化实战指南

1. 深度学习常用函数解析与贝叶斯规则实战深度学习作为机器学习的重要分支,其核心在于通过多层神经网络对数据进行特征提取和模式识别。在这个过程中,各种数学函数扮演着关键角色,而贝叶斯规则则为模型提供了概率框架下的推理能力。本文将深入…

2026/7/22 4:48:39

Claude Code:AI编程助手的核心技术解析与应用实践

1. Claude Code项目概览与技术定位Claude Code作为新一代AI编程助手,其核心设计理念是成为开发者工作流中的"数字协作者"。与传统的代码补全工具不同,它采用全代码库感知架构,通过静态分析、动态追踪和上下文建模三大技术支柱&…

2026/7/22 4:48:39

化妆品行业全产业链解析:从原料到渠道的黄金法则

1. 化妆品产业全景解析:从原料到终端的完整价值链作为一名在化妆品行业摸爬滚打十二年的"老油条",我亲眼见证了这个行业从粗放式增长到精细化运营的完整历程。今天就用最接地气的方式,带大家拆解这个万亿级市场的底层逻辑。化妆品行…

2026/7/22 4:43:39

三个月前的我留下一个烂摊子,WorkBuddy 替我读懂了它!

文章目录一次不太体面的项目交接它先给旧项目做了份尸检修复只改了该改的地方AI 能读懂代码,未必能读懂当时的我我终于完成了那次拖了几个月的交接我在电脑里翻到一个叫“灵感停尸房”的文件夹。 光看名字,我承认它挺像我会做出来的东西。再往里看&…

2026/7/20 6:33:00

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/22 0:02:17

抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具

抓包代理链路下的 TLS 指纹变化分析:为什么调试环境会影响访问结果 摘要 在网页调试、接口联调、自动化巡检和授权采集排查中,抓包是常见手段。但很多开发者会遇到一个现象:正常访问页面时没有问题,一进入抓包或代理调试环境&…

2026/7/22 0:02:17

微信QQ聊天记录误删恢复与备份方案全指南

1. 聊天记录误删的常见场景与恢复思路作为一名长期关注数据安全的技术博主,我处理过上百起聊天记录误删的求助案例。手机误操作、系统升级失败、设备损坏是三大常见诱因。上周就遇到用户更新微信时断电,导致近两年的工作群聊记录全部消失的极端案例。不同…

2026/7/22 0:02:17

2026最新8款个人AI编程免费工具深度实测

作为一名全栈独立开发者,我最近半年一直在折腾副业项目,每个月在AI编程工具上的订阅费算下来其实也不算便宜。作为个人开发者,我们追求的就是用最少的成本获得最高效的开发体验。TRAE 基础版免费,字节跳动出品的国内首款 AI 原生 …

2026/7/21 20:02:44

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…