小编mas*_*iga的帖子

在不同的包中编译具有依赖性的pyx文件

我在编译不同包中的cdef-ed类型时遇到问题,我在cython文档中找不到解释.

我在我的python src树的根目录中有这个setup.py:

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"])
      ]   
)
Run Code Online (Sandbox Code Playgroud)

FragIdx是一个cdef-ed类型,在flink/pytk/defs/FragIdx.pyx中定义:

cdef class FragIdx:
   cdef public FragIdx parent
   cdef public FragIdx root
   cdef public tuple label
   ...
Run Code Online (Sandbox Code Playgroud)

STK_idx是FragIdx的扩展,在flink/pytk/fragments/STK_idx.pyx中定义:

from flink.pytk.defs.FragIdx import FragIdx
cdef class STK_idx(FragIdx):
   ...
Run Code Online (Sandbox Code Playgroud)

当我尝试使用帖子开头列出的setup.py进行编译时,FragIdx编译得很好,但是当涉及到STK_idx时,我收到以下错误消息:

flink/pytk/fragments/STK_idx.pyx:5:5: 'FragIdx' is not a type name
Run Code Online (Sandbox Code Playgroud)

请注意,我的源树的根目录列在$ PYTHONPATH中.

我真的很感激,如果有人能对此有所了解,非常感谢!

丹尼尔

python cython

11
推荐指数
1
解决办法
2111
查看次数

标签 统计

cython ×1

python ×1