मुझे अलग-अलग पैकेजों में cdef-ed प्रकारों को संकलित करने में समस्याएं आ रही हैं और मुझे साइथन दस्तावेज़ों में कोई स्पष्टीकरण नहीं मिला।विभिन्न पैकेजों में निर्भरताओं के साथ पीईएक्स फाइलों को संकलित करना
मैं अपने अजगर 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"])
]
)
FragIdx है एक cdef एड प्रकार, में परिभाषित Flink/pytk/defs/FragIdx.pyx:
cdef class FragIdx:
cdef public FragIdx parent
cdef public FragIdx root
cdef public tuple label
...
और STK_idx FragIdx का एक विस्तार, Flink में परिभाषित किया गया है/pytk/टुकड़े/STK_idx.pyx:
from flink.pytk.defs.FragIdx import FragIdx
cdef class STK_idx(FragIdx):
...
जब मैं उसी संकलन करने की कोशिश पोस्ट की शुरुआत में सूचीबद्ध setup.py एनजी, FragIdx सब ठीक संकलित किया गया है, लेकिन जब यह STK_idx की बात आती है मैं निम्न त्रुटि संदेश मिलता है:
flink/pytk/fragments/STK_idx.pyx:5:5: 'FragIdx' is not a type name
कृपया ध्यान दें मेरे स्रोत पेड़ की जड़ निर्देशिका है कि $ PythonPATH में सूचीबद्ध है।
अगर कोई इस पर कोई प्रकाश डाल सकता है तो मैं वास्तव में सराहना करता हूं, बहुत बहुत धन्यवाद!
डेनियल