Rust Cpython,是否有Python环境的设置?
我正在遵循此示例,以将Rust写入python App的函数导入: https://depth-first.com/articles/2022/03/09/python-extensions-in-python-extension in
输出是'libfunction.dylib',我应该将其重命名为'function.so',将其移至文件夹中,然后我应该能够在python中导入它(例如该模块只是公开一个称为entry的函数):
from function import greet
我缺少的python环境设置了一些设置吗?即使我完全使用文章链接的存储库,python也找不到模块(检查了正确拼写的10次,该文件在正确的文件夹中等等。):
ModuleNotFoundError: No module named function
货物
[package]
name = "function"
version = "0.1.0"
edition = "2021"
[lib]
crate-type = ["cdylib"]
[dependencies]
cpython = "0.7"
[features]
default = ["python3"]
python3 = ["cpython/python3-sys", "cpython/extension-module"]
。 .rs:
use cpython::{py_module_initializer, py_fn, PyResult, Python};
fn greet(_: Python, name: String) -> PyResult<String> {
Ok(format!("Hello, {}!", name))
}
py_module_initializer! {
function, |py, module| {
module.add(py, "greet", py_fn!(py, greet(string: String)))?;
Ok(())
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如 py_module_initializer!{function,...} macro生成一个名为
pyinit_function
的模块导出函数,共享对象名称必须与之匹配。重命名
libFunction.so
函数和类似地导入:As suggested in this issue,
the
py_module_initializer!{function, ...}
macro generates a module export function namedPyInit_function
, and the shared object name must match it.Rename
libfunction.so
tofunction.so
and import like this: