创建一个pxd定义文件最简单的方法是什么,它只是收集通过pyx文件复制的cdefs,而不创建新的扩展?如何在不使用扩展的情况下使用cython定义文件(pxd)?
我的情况如下:我想在pxd文件(hp/src/common.pxd)中收集一些extern cdefs。我还添加了一些非外部的cdef,其实现在common.pyx中。
在另一个pyx文件(hp/src/_lib.pyx)中,我把它变成了一个扩展,我引用了一些常用的东西。
在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 common ... from _lib.cpp ... 我卡在这里。任何想法?
您也可以尝试在[cython-users](https://groups.google.com/forum/#!forum/cython-users) – forivall