假设我有.pxd
和.pyx
文件,它们都使用这样的函数参数:np.ndarray[DTYPE_double_t, ndim=1] weight
,但是文件(pyx和pxd)中的ctypedef将会出现:' DTYPE_int_t
'重新声明
我的代码在文件开始部分中跟随:
import numpy as np
cimport numpy as np
cimport cython
DTYPE_double = np.float64
DTYPE_int = np.int32
ctypedef np.float64_t DTYPE_double_t
ctypedef np.int32_t DTYPE_int_t
答案 0 :(得分:1)
当附带一个同名的pyx文件时,它们提供了一个Cython 接口到Cython模块,以便其他Cython模块可以 使用比Python更有效的协议与它通信 之一。
这意味着将.pxd
文件中的声明复制到.pyx
文件是一个错误,因为它会自动包含在内。要编译代码,必须删除重复。
您尚未说明为什么要复制代码,因此如果某些目的很重要,请解释为什么我或其他人可以帮助您解决问题。