如何使用pyo3从Python文件调用rust函数?

2024-06-07 04:02:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个视频游戏,在这个游戏中,我需要从python文件中设置rust对象(比如,添加一个带有纹理的按钮:“coords:”text:“action:”)。你知道吗

我用pyo3板条箱把python和rust联系起来。你知道吗

我成功地从我的rust代码中调用了python脚本。你知道吗

但是我找不到如何从python文件中调用rust函数。你知道吗

执行python脚本的代码:

fn main() -> PyResult<()> {
    let gil = Python::acquire_gil();
    let py = gil.python();
    let script = fs::read_to_string("deep_hello.py")?;

    println!("RUNNING :\n[\n{}]", script);
    py.run(&script, None, None)
}

我想从python脚本中调用的函数:

/// hello_from_rust(/)
/// --
///
/// This function prints hello because she is very nice.
#[pyfunction]
fn hello_from_rust() {
    println!("Hello from rust from python !");
}

我的python脚本:

hello_from_rust()

我得到这个输出:

RUNNING :
[
hello_from_rust()
]
Error: PyErr { type: Py(0x7f9cdd1e9580, PhantomData) }

Tags: 文件函数代码frompy脚本游戏hello