小编Hot*_*hen的帖子

如何从 Python 调用 Rust 异步方法?

我想在 Python 中使用 Rust 异步方法。我正在尝试使用PyO3rust-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)

python rust python-3.8 pyo3

5
推荐指数
1
解决办法
1268
查看次数

如何使用 Nuitka 从 Python 获取已编译二进制文件的当前路径?

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\n
Run Code Online (Sandbox Code Playgroud)\n\n

我应该将生成的二进制文件和资源放到另一台计算机的同一位置。\n如何解决此问题?

\n\n

我更简单的尖峰是:

\n\n
# /home/me/myproj/spike.py\nimport os\nprint(os.path.dirname(__file__))\n
Run Code Online (Sandbox Code Playgroud)\n\n

编译后,移动到任何其他位置,我总是得到以下结果/home/me/myproj.

\n\n

我需要一个结果,就像/another/path我将编译myproj.bin/another/path.

\n

python nuitka

2
推荐指数
1
解决办法
1975
查看次数

标签 统计

python ×2

nuitka ×1

pyo3 ×1

python-3.8 ×1

rust ×1