問題タブ [cythonize]
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 - Windows で cython の pyxinport のコンパイルを確認するにはどうすればよいですか?
私は Windows で Cython プロジェクトに取り組んでいます。パッケージ ディレクトリに 2 つのファイルを作成しました。
module1.py
module1.pyx
次のコードを実行した後、 を呼び出しpyximport
ます。
コンパイル後に .pyd または .c ファイルが見つかりませんでした。
Windows では、これらのファイルはどこにありますか? コンパイルでエラーが発生したかどうかを確認するにはどうすればよいですか?
python - Cython cpdef 関数にデコレータを適用する方法
最近 Cython をいじっていて、Cython 関数にデコレータを適用するときにこのエラーに遭遇しました
Cdef functions/classes cannot take arbitrary decorators
これが私がいじっていたコードです:
このエラーは、cdef 関数が特定のデコレータしか使用できないことを示唆しています。cdef 関数に適用できる独自のデコレータを作成することは可能ですか?
編集:将来の読者のために:
g = plus_one(_g)
@DavidWの回答で言及されているトリックはうまくいきます。再帰では機能しません。たとえばfib = memoize(fib)
、私のコード例で実行すると、最上位の呼び出しはメモ化されますが、fib への再帰呼び出しはメモ化されません。つまり、呼び出しfib(5)
は呼び出しの結果をメモ化しfib(5)
ますが、再帰呼び出しはメモ化しませんfib(4), fib(3), fib(2), fib(1)
(つまり)
@DavidWが指摘しているように、cdef, cpdef
関数はコンパイル時に完全に決定されます。装飾は実行時のものであり、実際の機能を更新しません。
python - __file__ に相当する pyd ファイルのパスを取得する方法
package.py
にパッケージ化しようとし ているファイルがありますpackage.pyd
。私は次の声明を持っていますpackage.py
実行すると問題なく動作しますが、別のファイルpackage.py
にインポートすると、次のエラーメッセージが表示されますpackage.pyd
wrapper.py
.pyd ファイルの場所を取得するにはどうすればよいですか。また、.pyd または .py として実行されているかどうかを確認する方法もあります。
ありがとうございました!
python - C++ 関数 Cython から PyObject を含む複雑なオブジェクトを返す
Cython を使用して、いくつかの C++ クラスと関数を Python にラップしようとしています。これまでに 2 つのクラスをラップしましたが、今度は関数をラップしたいと思います。
関数のシグネチャは
std::map<std::string, std::vector<PyObject*>> analyze(PyObject* img, LandmarkDetector::CLNF& clnf_model, LandmarkDetector::FaceModelParameters& params);
CLNF
クラスとクラスを正常にラップしましたがFaceModelParameters
、このanalyze
関数をラップするのに問題があります。
この関数はPyObject*
opencvを扱っているのでsを扱っているのですが、言語間で簡単に受け渡しできるようにしたいです。これらの関数を使用して、cv::Point
と python オブジェクトの間、および python Mat とcv::Mat
.
これは私のpyxファイルです:
しかし、コンパイルしようとすると、エラーメッセージが表示されます
(これは行を指しますmap[string, vector[object]] analyze [...]
)