Rustのチュートリアルが完了してからツールを自作できるまで慣れました。
Pyo3の関係でcargo 1.34.0-nightlyを使用しています。
下記のような 複数種類のPythonObjectを返す拡張モジュール を試行錯誤しています。
PyBytes,PyString,PyTupleまでは確認できたのですがPyIntのみが上手くいきません。
rust
1use pyo3::prelude::*; 2use pyo3::types::{PyBytes,PyString,PyTuple,PyBool,PyDict,PyFloat,PySet,PyInt}; 3use pyo3::wrap_pyfunction; 4 5#[pyfunction] 6fn tuples(_py: Python<'_>) -> Py<PyTuple> { 7 let dict = PyDict::new(_py); 8 dict.set_item("hello", 333); 9 PyTuple::new(_py, &[ 10 PyObject::from(PyBytes::new(_py, &[1,2,3])), 11 PyObject::from(PyString::new(_py, "wwww")), 12 PyObject::from(PyBool::new(_py, true)), 13 PyObject::from(dict), 14 PyObject::from(PyFloat::new(_py, 0.123)), 15 PyObject::from(PySet::new(_py, &[3,4,5,6])), 16 PyObject::from(PyInt::new(_py, 333)) 17 ]) 18} 19 20fn test(_py: Python, m: &PyModule) -> PyResult<()> { 21 m.add_wrapped(wrap_pyfunction!(tuples))?; 22 Ok(()) 23}
具体的なエラーです。
error
1error[E0599]: no function or associated item named `new` found for type `pyo3::types::num3::PyLong` in the current scope 2 --> src\pyextention.rs:14:31 3 | 414 | PyObject::from(PyInt::new(_py, 333)) 5 | -------^^^ 6 | |
このようにPyInt(同じくPyLong)のみの仕様が異なるのか上手くいきません。
Pyo3のDocも漁りましたがわかりませんでした。
何かわかる方は回答の方を宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/25 02:47