Я работаю над видео-игрой, в которой мне нужно будет установить объекты ржавчины (например, добавить кнопку с текстурой: "" corres: "" text: "" action: "") из файлов Python.
Я использую ящик pyo3 для связи Python и ржавчины.
Мне удалось вызвать скрипты 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)
}
Функция Rust, которую я хотел бы вызвать из моего скрипта Python:
/// hello_from_rust(/)
/// --
///
/// This function prints hello because she is very nice.
#[pyfunction]
fn hello_from_rust() {
println!("Hello from rust from python !");
}
Мой скрипт на питоне:
hello_from_rust()
Я получаю этот вывод:
RUNNING :
[
hello_from_rust()
]
Error: PyErr { type: Py(0x7f9cdd1e9580, PhantomData) }