使用拆分定义的Cython编译
我试图在使用拆分定义的Cython编译,c,pointers,cython,C,Pointers,Cython,我试图在pxd文件中声明Cython类,但在尝试分配指针时无法编译它 以下pyx编译良好: cdef class Foo: cdef void *_void cdef set_ptr(self, void *ptr): self._void = ptr 但当我根据以下公式将其拆分为两个文件时: .pxd cdef class Foo: cdef void *_void cdef set_ptr(self, void *ptr) .pyx cd
pxd
文件中声明Cython类,但在尝试分配指针时无法编译它
以下pyx
编译良好:
cdef class Foo:
cdef void *_void
cdef set_ptr(self, void *ptr):
self._void = ptr
但当我根据以下公式将其拆分为两个文件时:.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
中的扩展名与pxd
和pyx
文件的名称相同,它解决了这个问题。Cyhton似乎没有编译pxd
文件 它和你发布的代码完全一样。您的pxd文件名与pyx文件名匹配吗?@DavidW谢谢您的建议。文件的名称确实相同,但问题来自setup.py
中的lib名称,它与文件的名称不同