我在编译不同包中的cdef-ed类型时遇到了问题,我无法在cython文档中找到解释。在不同的包中编译依赖的pyx文件
我有此setup.py在我蟒SRC树的根:
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
setup(
cmdclass = {'build_ext': build_ext},
ext_modules = [
Extension("flink.pytk.defs.FragIdx",
sources = ["flink/pytk/defs/FragIdx.pyx"]),
Extension("flink.pytk.fragments.STK_idx",
sources = ["flink/pytk/fragments/STK_idx.pyx"])
]
)
FragIdx是CDEF-ED型,在定义弗林克/ pytk/DEFS/FragIdx.pyx:
cdef class FragIdx:
cdef public FragIdx parent
cdef public FragIdx root
cdef public tuple label
...
而且STK_idx是FragIdx的延伸,在弗林克定义/ pytk /片段/ STK_idx.pyx:
from flink.pytk.defs.FragIdx import FragIdx
cdef class STK_idx(FragIdx):
...
当我试图编译USI纳克在文章开头列出的setup.py,FragIdx编译没事,但是当涉及到STK_idx我收到以下错误信息:
flink/pytk/fragments/STK_idx.pyx:5:5: 'FragIdx' is not a type name
请注意,我的源代码树的根目录列在$ PYTHONPATH中。
我真的很感激,如果任何人都可以摆脱这一点,非常感谢!
丹尼尔