MWEに近づくには、私の問題を示すprojectの例があります。 プロジェクトは、ラップされたC++クラス(この場合はPCLHeaderオブジェクト)で簡単な操作を実行しようとします。cython cmakeモジュールランタイムエラー
私のcmake
コールには2つの.pyx
ファイルが含まれているという問題があります。 cython_add_module(test_cython common.pyx test_cython.pyx)
。
プロジェクトの一部であるUseCython.cmake
のドキュメントに基づいて、私の言う限り、この呼び出しは大丈夫です。
私はこのプロジェクトをビルドし、結果のライブラリをインポートしようとすると、Pythonは最初にをインポートするのに失敗します。さておき、これはいくつかの方法で間違っているならば誰もがより良い設計に向かって私を操縦することができれば、私はそれを感謝として
In [1]: import test_cython
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-158d7481838a> in <module>()
----> 1 import test_cython
common.pxd in init test_cython (/Users/phil/devel/test_cython/build/test_cython.cxx:1424)()
ImportError: No module named common
In [2]: import test_cython
In [3]:
。たとえば、this lineが私のセットアップに基づいてコンパイルエラーを引き起こす理由を理解できません。
:何をする必要がある第二のモジュールに
test_cython.pyx
1のモジュールとcommon.pyx
をコンパイルしています。しかし、私は実際にエラーが何であるか分からない。 – DavidW私はデバッグ中にあなたのソリューションを試しましたが、私は 'target_link_libraries'を呼び出して失敗したと思います。それはリンクせずに動作するということは私には起こりませんでしたが、インポートのコンテキストでは意味があります。ありがとう、私はすぐに – phil0stine
Worked、期待どおりにテストされます。私はupvoteに私のために編集する必要があると思う(私は私の子供が誤ってdownvotedと思う)が、私はどちらの場合でも受け入れます。コンパイルエラーに関しては、次の 'cdef PCLHeader hw = HeaderWrap(h).header_cpp [0]'の場合でも、古典的な 'Pythonオブジェクトを 'PCLHeader'に変換できません。いずれにしても、ありがとうございます。 – phil0stine