異なるフォルダーにいくつかの Cython モジュールで構成されるプロジェクトがあります。
clibs
File.cpp
File.hpp
module
module/folder
__init__.py
file1.pyx
file1.pxd
__init__.py
file2.pyx
私はこのmodule/folder/file1.pxd
ようなものを持っています:
cdef extern from "../../clibs/File.hpp":
cdef cppclass MyCppClass:
int _data
MyCppClass(int arg)
cdef class MyPyClass:
cdef MyCppClass* cpp_obj
そして、module/file2.pyx
Icimport
で からの宣言module/folder/file1.pxd
:
from module.folder.file1 cimport MyCppClass, MyPyClass
今、これをビルドしようとすると、cython は次の行を生成します
#include "../../clibs/File.hpp"
を読み取るときmodule/folder/file1.pxd
に、新しく生成された にドロップしますがmodule/file2.cpp
、これは明らかに無効なパスです!
これを解決するにはどうすればよいですか? extern
節でプロジェクト ルートからの相対パスを指定できますか?