問題タブ [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.

0 投票する
0 に答える
101 参照

python - Windows で cython の pyxinport のコンパイルを確認するにはどうすればよいですか?

私は Windows で Cython プロジェクトに取り組んでいます。パッケージ ディレクトリに 2 つのファイルを作成しました。

  • module1.py
  • module1.pyx

次のコードを実行した後、 を呼び出しpyximportます。

コンパイル後に .pyd または .c ファイルが見つかりませんでした。

Windows では、これらのファイルはどこにありますか? コンパイルでエラーが発生したかどうかを確認するにはどうすればよいですか?

0 投票する
1 に答える
4751 参照

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関数はコンパイル時に完全に決定されます。装飾は実行時のものであり、実際の機能を更新しません。

0 投票する
2 に答える
1112 参照

python - __file__ に相当する pyd ファイルのパスを取得する方法

package.pyにパッケージ化しようとし ているファイルがありますpackage.pyd。私は次の声明を持っていますpackage.py

実行すると問題なく動作しますが、別のファイルpackage.pyにインポートすると、次のエラーメッセージが表示されますpackage.pydwrapper.py

.pyd ファイルの場所を取得するにはどうすればよいですか。また、.pyd または .py として実行されているかどうかを確認する方法もあります。

ありがとうございました!

0 投票する
1 に答える
1176 参照

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 [...]