Rust <-> Python 绑定
Rust-cpython() https://github.com/dgrunwald/rust-cpython/actions/workflows/test.yml ======================= 警告: 此包不再被积极维护。请转至 PyO3 使用。 Rust 绑定到 Python 解释器。 * 文档 * Cargo 包: cpython — — 版权所有 (c) 2015-2021 Daniel Grunwald。Rust-cpython 遵循 MIT 许可证。Python 遵循 Python 许可证。 支持的 Python 版本: * Python 2.7 * Python 3.7 到 3.12 警告: 此包不再被积极维护。请转至 PyO3 使用。 需要 Rust 1.41.1 或更高版本。 # 使用 要使用 cpython,请将以下内容添加到您的 Cargo.toml:
cpython = "0.7"sys.version 的值:use cpython::{Python, PyDict, PyResult};
fn main() {
let gil = Python::acquire_gil();
hello(gil.python()).unwrap();
}
fn hello(py: Python) -> PyResult<()> {
let sys = py.import("sys")?;
let version: String = sys.get(py, "version")?.extract(py)?;
let locals = PyDict::new(py);
locals.set_item(py, "os", py.import("os")?)?;
let user: String = py.eval("os.getenv('USER') or os.getenv('USERNAME')", None, Some(&locals))?.extract(py)?;
println!("Hello {}, I'm Python {}", user, version);
Ok(())
}以下两个文件将通过 cargo build 进行构建,并会生成一个与 Python 兼容的库。
在 Mac OS 上,您需要将输出文件的名称从 *.dylib 重命名为 *.so。
在 Windows 上,您需要将输出文件的名称从 *.dll 更改为 *.pyd。
在构建时,python3-sys/build.rs 将在以下位置查找解释器:
PYTHON_SYS_EXECUTABLEPythonpython3
选择第一个可用且与配置的预期版本兼容的解释器(默认情况下,任何 Python 3.X 解释器都可以)。如果需要特定的解释器,可以使用 -i 选项指定。[dependencies]
暂无开放 Issues,或尚未同步最近议题。