所在的位置: C++ >> C++介绍 >> rust给python加速

rust给python加速

背景之前都是在看C/Cpp,也在努力的学这两个语言。但是感觉太难了。语法太多了(主要还是人笨,学不过来)。一直也在看rust,感觉rust写起来和python差不多优雅,而且写法和c++又是有点类似。然后最近空闲时间就把《Rust程序设计语言》和《通过例子学Rust》两本书看完了。学到了不少新内容。最近也发现一些新的包,比如一个叫polar包的,提供类pandas的功能,但是比pandas更快,这个包的底层是使用rust写的,并且python也能使用。那我就在想:“我能不能学习一下,看看怎么让python用rust编译的东西,或者说,如果使用rust加速python。”这篇文章主要就是介绍一个简单的rust加速python的案例。(主要是翻译,原文已放在文末的参考链接中)。步骤创建一个rust包

cargonewpyext-myrustlib

然后使用vscode进入这个文件夹下,打开src文件夹,创建一个新文件:lib.rs。

编辑Cargo.toml依赖的是rust-cpython。当前版本是0.7(年4月)。输出的是一个dylib。这个可以让python直接import。

[package]name="pyext-myrustlib"version="0.1.0"edition=""[lib]name="myrustlib"crate-type=["dylib"][dependencies.cpython]version="0.7"features=["extension-module"]编写src/lib.rs从cpython导入宏。调用Python,PyResult构建一个count_doubles函数。3.1这个函数第一个参数是Python,是对python解释器的引用,可以让rust使用python的GIL。3.2函数的第二个参数是val,是一个字符串的引用。3.3返回的对象是PyResult。即使到时候有异常,也可以让这个函数报错。3.4更多的细节,其实可以看看rust


转载请注明:http://www.aierlanlan.com/rzfs/651.html