创建 pxd 定义文件的最简单方法是什么,它只是收集通过 pyx 文件复制的 cdef,而不创建新的扩展名?
我的情况如下:我想在 pxd 文件 (hp/src/common.pxd) 中收集一些外部 cdef。我还添加了一些非外部 cdef,其实现在 common.pyx 中。
在另一个 pyx 文件(hp/src/_lib.pyx)中,我把它变成了一个扩展,我从 common 中导入了一些东西。
在 setup.py 文件中,我创建了以下扩展:
Extension('hp._lib',
['hp/src/_lib.pyx'],
language='c++'),
通过这样做,不会创建 common.cpp 文件,因此看起来依赖项不会自动处理。这是第一个问题。
然后,手动运行 'cython --cplus common.pyx' 在目录 hp/src 中正确创建一个 common.cpp 文件,如果我将 'hp/src/common.cpp' 添加到扩展源列表中,命令python setup.py 毫无怨言地安装了所有东西,但是,导入模块 hp 会触发 ImportError: No module named common... from _lib.cpp... 我被困在这里。任何想法?