問題タブ [pyo3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - PyO3 で Rust から Numpy をロードするときの _ctypes 拡張子の問題
すべてconda環境内で、pyO3を使用してRustからnumpyを使用しようとしています。pyO3 をリンクするために、conda を使用して GCC ツールチェーンもインストールしました。
を表示するなどの簡単なことを実行できるようになりsys.path
ました。ただし、numpy をインポートしようとすると、次のようになります。
次のことが起こります。
興味深いことに、単にタイプpython -c "import numpy"
すると、問題は発生しません。
RUSTFLAGS="-C linker=$CC" cargo +nightly run
それが役立つ場合は、コードをビルドして実行するために使用します。
rust - PY03 を使用して Python オブジェクトを返す Rust 関数を実装する方法
Python から、Python オブジェクトを返す Rust 関数を呼び出したいと思います。
クラスのインスタンス化に関する PYO3 ガイドでは、このようなオブジェクトを としてインスタンス化する方法が説明されているため、この関数を作成する方法はわかりPyRef
ませんが、 からそのような参照を返す方法がわかりませんpyfunction
。
これは私がしようとしているものです:
ただし、PyRef
有効な戻り値の型ではないようです (コンパイラーは「型引数の数が間違っています: 期待される 1、見つかった 0」)、および aPyRef
を a などの返される可能性のあるものに変換する方法がわかりませんPyObject
。
python - Python オブジェクトを Rust に渡す
Python オブジェクトを錆に渡して、Python オブジェクトのフィールドを使用して操作を実行しようとしています。
パイソン:
さび:
Python から呼び出した場合の期待される結果は次のようになります。
代わりに、コンパイル時に Rust エラーが発生します。
オブジェクトのフィールドとメソッドを錆でリストし、フィールドを操作する方法はありますか?
rust - &str と String、ネイティブ型と PyResult でメモリを管理する方法Rust から Python に値を渡すときは?
PyO3 を使用して、Rust から Python&str
に型を渡すことができます。String
そしてPythonはこれらをうまく呼び出すことができます:
PyResult<&str>
これらをPyResult<String>
同じ動作でラップすることもできます。
ここでメモリが適切に処理されるようにするには、何を知る必要があり、他の手順を実行する必要がありますか? String
同じ文字列への参照を維持しようとしていない場合、必要に応じてそれらを解放できるように、s について GIL に伝える必要がありますか?
さらに行う必要がある場合、 Rust を作成するときなど、他のメソッドでも同じことを行う必要がありますstruct
か?