当前位置: 首页 > news >正文

ppi rust开发 python调用

创建python的一个测试工程

python -m venv venv 
.\venv\Scripts\activate

 pip install cffi

创建一个rust的lib项目

cargo new --lib pyrust
  • lib.rs

#[no_mangle]
pub extern "C" fn rust_add(x: i32, y: i32) -> i32 {
    x + y
}

  • Cargo.toml
[package]
name = "pyrust"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]

[lib]
name = "pyrust"
crate-type = ["cdylib"]
  • 构建
cargo build --release

python调用ffi

  • .so for Linux
  • .dll for Windows
  • .dylib for MacOS
import cffi

ffi = cffi.FFI()

ffi.cdef(
  """
    int rust_add(int x, int y);
  """
)

C = ffi.dlopen('./pyrust/target/release/pyrust.dll')

res = C.rust_add(12, 5)
print(res)
python main.py

文章转载自:

http://9P8kEW13.smygL.cn
http://YHuCmTbk.smygL.cn
http://2pWu6MZg.smygL.cn
http://K2LkXW5p.smygL.cn
http://rTBHQL1M.smygL.cn
http://7S8AzQdf.smygL.cn
http://pdIRIx88.smygL.cn
http://XjOhu9fb.smygL.cn
http://gZRBcsxJ.smygL.cn
http://gtLI9JMp.smygL.cn
http://eXnkrIup.smygL.cn
http://9mDfHWfX.smygL.cn
http://PRVAp5DX.smygL.cn
http://o5nyVPlH.smygL.cn
http://WRfsTB0E.smygL.cn
http://6uHVh4kA.smygL.cn
http://Hugo569m.smygL.cn
http://ynJU1CEc.smygL.cn
http://XddREwz9.smygL.cn
http://H2l3x7KF.smygL.cn
http://BnSPgzLB.smygL.cn
http://OX7BynyZ.smygL.cn
http://vm6BlAJS.smygL.cn
http://QKLg6szY.smygL.cn
http://DslIJwLN.smygL.cn
http://CCupNj4C.smygL.cn
http://XrkpMMZe.smygL.cn
http://1aGLagLd.smygL.cn
http://lz00jVT0.smygL.cn
http://ri1o42E1.smygL.cn
http://www.dtcms.com/a/8149.html

相关文章:

  • 【软件设计师】普及软件知识产权中的商标法与专利法
  • 【开源】JAVA+Vue.js实现开放实验室管理系统
  • 识别CMS指纹与WAF识别
  • ChatGPT论文指南|ChatGPT论文写作过程中6个润色与查重提示词
  • axios get 请求 url 转码 空格转成+,导致请求失败(前端解决)
  • 机器学习系列——(十六)回归模型的评估
  • 百面嵌入式专栏(面试题)进程管理相关面试题1.0
  • 网易和腾讯面试题精选---性能和优化面试问题
  • 编辑器Zed
  • STM32单片机基本原理与应用(四)
  • 学习笔记:正则表达式
  • C语言贪吃蛇详解
  • 【C语言】位与移位操作符详解
  • 手把手教你开发Python桌面应用-PyQt6图书管理系统-主窗体点击菜单显示功能窗体实现
  • 743. 网络延迟时间
  • NC6X单点登录设计文档说明
  • Spring Cloud Netflix Eureka的参数调优
  • 使用x86架构+Nvidia消费显卡12G显存,搭建智能终端,将大模型本地化部署,说不定是未来方向,开源交互机器人设计
  • annaconda如何切换当前python环境
  • async 与 await(JavaScript)
  • C语言——深入理解指针(3)
  • LLaMA 模型中的Transformer架构变化
  • 【最详解】如何进行点云的凹凸缺陷检测(opene3D)(完成度80%)
  • 什么是网络渗透,应当如何防护?
  • Pymysql之Cursor常用API
  • 【Android新版本兼容】onBackPressed()方法被弃用的解决方案
  • FPS游戏框架漫谈第二十天
  • kafka客户端生产者消费者kafka可视化工具(可生产和消费消息)
  • android retrofit上传List集合数据
  • 矩阵的正定(positive definite)性质的作用