具有拆分定义的 Cython 编译

Cython compilation with split definition

我试图在 pxd 文件中声明一个 Cython class,但是当我尝试分配一个指针时无法编译它。

以下 pyx 编译正常:

cdef class Foo:
    cdef void *_void

    cdef set_ptr(self, void *ptr):
        self._void = ptr

但是当我根据 Cython documentation 将它分成 2 个文件时:
.pxd

cdef class Foo:
    cdef void *_void
    cdef set_ptr(self, void *ptr)

.pyx

cdef class Foo:
    cdef set_ptr(self, void *ptr):
        self._void = ptr

我收到以下错误:

Error compiling Cython file:
------------------------------------------------------------
...
# -*- coding: utf-8 -*-

cdef class Foo:
    cdef set_ptr(self, void *ptr):
        self._void = ptr
                    ^
------------------------------------------------------------

test/test.pyx:5:21: Cannot convert 'void *' to Python object

我该怎么做才能让它编译成功?

通过使 setup.py 中的扩展名称与 pxdpyx 文件的名称相同,问题得以解决。似乎 Cyhton 没有编译 pxd 文件。