我正在编写用于Python的Cython扩展。
我有这个Cython声明.pxd文件,该文件声明在其他C头文件中定义的C结构:
# Cython definitions for parameters.h
cdef extern from "parameters.h":
ctypedef struct control_par:
int num_cams
# some other struct fields....
现在,我想对其他头文件执行相同的操作,但是在这里,我将不得不使用上面已经定义的内容:另一个Cython
control_par
文件中的.pxd
C结构:from optv cimport parameters, calibration # no error here during setup
cdef extern from "optv/trafo.h":
void pixel_to_metric(# some other parameters...
control_par * parameters);
在cythonize过程中,我得到这个错误:
'control_par'不是类型标识符
就像根本没有定义。
我究竟做错了什么?
最佳答案
导入C定义的正确方法是parameters.control_par
。我会做:
from optv.parameters cimport control_par, whatever_else_you_need
关于python - 从其他Cython声明文件导入extern声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35259468/