python通过rust编写组件扩展自己的能力

发布时间:2026/9/11 2:17:31

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/9/11 1:57:41

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

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

2026/9/9 16:39:08

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

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

2026/9/11 2:15:08

慢病膳食AI决策系统:三层可解释架构实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/11 2:15:07

MySQL连不上localhost?高频报错根因与排查攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/10 16:39:38

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/10 11:16:38

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/10 12:32:02

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/10 15:49:53

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码