从其他Cython声明文件导入extern声明

时间:2016-02-07 21:41:06

标签: python c cython

我正在编写一个用于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);

在cythonizing期间我收到此错误:

  

'control_par'不是类型标识符

喜欢它根本没有定义。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

导入C定义的正确方法是parameters.control_par。我愿意:

from optv.parameters cimport control_par, whatever_else_you_need