1PYTHON setup.py build_ext --inplace 2PYTHON -c "import a" 3 4######## setup.py ######## 5 6from Cython.Build.Dependencies import cythonize 7import Cython.Compiler.Options 8Cython.Compiler.Options.cimport_from_pyx = True 9 10from distutils.core import setup 11 12setup( 13 ext_modules = cythonize("*.pyx"), 14) 15 16######## a.pyx ######## 17 18from b cimport Bclass, Bfunc, Bstruct, Benum, Benum_value, Btypedef, Py_EQ, Py_NE 19cdef Bclass b = Bclass(5) 20assert Bfunc(&b.value) == b.value 21assert b.asStruct().value == b.value 22cdef Btypedef b_type = &b.value 23cdef Benum b_enum = Benum_value 24cdef int tmp = Py_EQ 25 26#from c cimport ClassC 27#cdef ClassC c = ClassC() 28#print c.value 29 30######## b.pyx ######## 31 32from cpython.object cimport Py_EQ, Py_NE 33 34cdef enum Benum: 35 Benum_value 36 37cdef struct Bstruct: 38 int value 39 40ctypedef long *Btypedef 41 42cdef class Bclass: 43 cdef long value 44 def __init__(self, value): 45 self.value = value 46 cdef Bstruct asStruct(self): 47 return Bstruct(value=self.value) 48 49cdef long Bfunc(Btypedef x): 50 return x[0] 51 52######## c.pxd ######## 53 54cdef class ClassC: 55 cdef int value 56