我有一个项目,由不同文件夹中的几个 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
我cimport
的声明中module/folder/file1.pxd
:
from module.folder.file1 cimport MyCppClass, MyPyClass
现在,当我尝试构建它时,cython 会生成该行
#include "../../clibs/File.hpp"
读取时module/folder/file1.pxd
,将其放入新生成module/file2.cpp
的路径中,这显然是一条无效路径!
我该如何解决这个问题?我可以在我的extern
子句中指定相对于项目根目录的路径吗?