我想在 Python 中使用 Rust 异步方法。我正在尝试使用PyO3或rust-cpython。
例如,对于同步 Rust 函数,我可以使用,
#[pyfunction]
fn myfunc(a: String) -> PyResult<String> {
let mut contents = String::new();
contents = a.to_string() + " appended";
Ok((contents))
}
#[pymodule]
fn MyModule(py: Python, m: &PyModule) -> PyResult<()> {
m.add_wrapped(wrap_pyfunction!(urlshot))?;
Ok(())
}
Run Code Online (Sandbox Code Playgroud)
对于异步方法,我该怎么做?例如,我想在 Python 中调用以下方法,
async fn hello_world() {
println!("hello, world!");
}
Run Code Online (Sandbox Code Playgroud) Nuitka 擅长将 Python 编译为可执行的二进制文件。\n但是编译后的二进制文件会从原始绝对路径中找到其他资源文件。\n因此,要移动到另一台计算机,需要制作目录树原始目录树相同。
\n\n例如,如果我编译一个这样的项目:
\n\n/home/me/myproj/\n\xe2\x95\xa0\xe2\x95\x90 myprog.py\n\xe2\x95\x9a\xe2\x95\x90 resource\n \xe2\x95\x9a\xe2\x95\x90 foo.data\nRun Code Online (Sandbox Code Playgroud)\n\n我应该将生成的二进制文件和资源放到另一台计算机的同一位置。\n如何解决此问题?
\n\n我更简单的尖峰是:
\n\n# /home/me/myproj/spike.py\nimport os\nprint(os.path.dirname(__file__))\nRun Code Online (Sandbox Code Playgroud)\n\n编译后,移动到任何其他位置,我总是得到以下结果/home/me/myproj.
我需要一个结果,就像/another/path我将编译myproj.bin到/another/path.