作为学习练习,我正在尝试使用闭包在 pyo3 中实现参数化装饰器 function。 pyo3 文档包含一个(非参数化)装饰器的示例,它使用__call__方法实现为 class,我在此基础上构建并使用外部 class 和__call__方法创建了一个参数化装饰器,该方法返回内部 class 和调 ...
作为学习练习,我正在尝试使用闭包在 pyo3 中实现参数化装饰器 function。 pyo3 文档包含一个(非参数化)装饰器的示例,它使用__call__方法实现为 class,我在此基础上构建并使用外部 class 和__call__方法创建了一个参数化装饰器,该方法返回内部 class 和调 ...
我在 Rust 中有一个结构,它的工作方式类似于我想公开给 Python 的链表。该结构有一个parent字段,它是对父字段的引用,父字段是同一类型的结构。 我需要将其包装在一个Box中,因为如果我不这样做,Rust 会抱怨需要间接访问,但是 PyO3 会出现以下错误: 该结构的简化版本如下所示: ...
I'm using Py03 to build a python module in Rust. I have a class in Rust which accepts a PyAny to refer to an object in Python. As part of the hash fu ...
我正在尝试实现使用Pyo3加载numpy 数组的方法。use ndarray::{array, ArrayView, Ix2}; use numpy::PyArray2; use pyo3::types::IntoPyDict; use pyo3::{PyResult, Python}; pub ...
Pylint不会识别我使用PyO3和maturin创建的PyModule中的任何函数。 所有函数在 python 代码库中导入并运行良好,但由于某种原因Pylint抛出E1011: no-member警告。 下面是一个(可能)不完整的虚拟示例,但提供它是为了展示我使用pymodule和pyfunc ...
我想在 rust(带 PYo3)中编写 python 模块的一部分(带有 PYo3),但也部分在 python 中,所以像...... src/utils.rs:use pyo3::prelude::*; #[pyfunction] fn sum_as_string(a: usize, b: ...
我是 rust 的新手。 我想写一个 function 稍后可以使用 pyo3 板条箱作为模块导入 Python。 下面是我想在 Rust 中实现的 function 的 Python 实现:def pcompare(a, b): letters = [] for i, letter ...
我正在使用 pyo3 将一些 rust 添加到我的 python 项目中(出于性能考虑),并希望创建一个 function 以更轻松地添加子模块。 我当前的代码:fn register_submodule(name: &str, python: Python, parent: &Py ...
我在 rust 中实现了一个算法以提高速度,然后将其内置到 python 模块中。 运行 function 确实比 python 实现快得多。 但我注意到一个有趣的怪癖:运行 function 很多次(比如 100 万次)平均比只运行一次或几次 function 快得多。print(timeit.t ...
我是 pyo3 的新手,也是pyo3的初学者。 我要做的是从 Rust slice返回到 Python bytes 。 我在pyo3文档中阅读了关于类型转换和memory 管理的内容,但我仍然感到有些失落。 这就是我现在所拥有的: 我看到当从 Python 调用它们时,它们都返回了我的期望: 你能 ...
我有以下示例:use pyo3::prelude::*; use std::collections::{HashMap, HashSet}; use std::sync::RwLock; #[pyclass] struct Rustex { map: RwLock<HashMap& ...
我正在使用 PyO3 开发一个 rust/python 包,并且在我运行maturin develop之后它在 python 上的工作效果很好。 我可以将我的 rust 代码导入 Python 并按预期运行我的函数。 我也想仍然从 Rust 运行我的代码,所以当我运行cargo run时,我收到以 ...
我在 rust 中创建了一个自定义模块,并使用 PyO3 绑定将其转换为 python 模块。 它使用硬编码路由在本地机器上工作,与其他只有名称的包不同。 我了解其他软件包是在 PIP 中启动的,因此可以在任何地方下载它们。 但是我可以在生产中使用我的自定义包吗? 我还没有尝试过,因为我知道它不起作 ...
我有一个方法foo具有以下签名: 在我的测试中,我试图创建一个测试数组来输入foo 不幸的是,锈告诉我: 显然,我遇到了关于维度的问题。 我如何必须创建PyReadonlyArray才能将其输入foo ? ...
我在我的代码中定义了一些结构,如果在 crate 上启用了某个功能,我也想为这些结构生成 Python 绑定。 现在我无法正确获得它。 假设我有一个结构MyStruct ,我想为它选择性地生成 Python 绑定。 我尝试过类似以下的方法 cfg_if! { if #[cfg(featur ...
我对 Rust 非常非常陌生,并且由于我强大的弱类型编程背景而苦苦挣扎。 下面的代码应该将通过 PYO3 从 Python 接收到的数据写入 XLSX 工作表。 我只是不知道如何处理最后一个匹配,因为“值”是 PyAny 类型的(也就是说,它的方法 extract 可以输出多种类型,如 Strin ...
我正在编写我的第一个基于 Rust 的 Python 模块,它会在导入时终止 Python 进程。 我已经把它归结为一个非常简单的例子,松散地基于html-py-ever 示例(它确实为我运行而不会崩溃)。 我在 M1 macbook 上运行 Python 3.8,Python 是为 arm64 ...
我正在使用 Pyo3 从 Python 调用 Rust 函数,反之亦然。 我正在努力实现以下目标: Python 调用rust_function_1 Rust function rust_function_1调用 Python function python_function传递 Rust f ...
我想包装一个 function,它采用一维 NDArray (rust-numpy) 和一个 usize 作为参数,并使用 PyO3 返回一个一维数组来调用 python 中的代码。不幸的是,我找不到一个很好的例子如何处理 PyO3 中的 arrays。 这是我到目前为止的代码: 我添加了装饰器和 ...
这可能吗? 经过一番研究,似乎可以使用库 setuptools-rust 来轻松分发,但看起来用户也需要这个库 setuptools-rust。 有没有什么方法可以在没有 setuptools-rust 的情况下进行安装? ...