直接导入python代码中的头文件 可以将具有C++功能的自身的CALCbTest.h头文件直接导入到Python文件中作为 cdef extern from "calcBeta.h":

直接导入python代码中的头文件 可以将具有C++功能的自身的CALCbTest.h头文件直接导入到Python文件中作为 cdef extern from "calcBeta.h":,c++,python-2.7,cython,C++,Python 2.7,Cython,不使用.cpp文件进行setup.py编译?由于函数完全在头文件中定义,因此可以通过导入在python代码中直接调用它,因此不需要.cpp文件 请让我知道我的理解是否正确,或者当您定义导入时,是否需要Cython编译.pyx和.cpp文件 cdef extern from "calcBeta.h": 您需要准确地指定导入中包含的内容,否则Cython会感到恼火。 所以你需要写: cdef extern from "calcBeta.h": int someFunctionIWantTo

不使用.cpp文件进行setup.py编译?由于函数完全在头文件中定义,因此可以通过导入在python代码中直接调用它,因此不需要.cpp文件


请让我知道我的理解是否正确,或者当您定义导入时,是否需要Cython编译.pyx和.cpp文件

cdef extern from "calcBeta.h":
您需要准确地指定导入中包含的内容,否则Cython会感到恼火。 所以你需要写:

cdef extern from "calcBeta.h":
    int someFunctionIWantToBindTo(int foo, char* bar)

因为Cython无法解析头文件,也无法自行确定要如何处理它。

我不知道直接导入头文件的方法。你签出boostpython了吗?虽然它不像导入头文件那么简单,但它比Python/C++API要简单得多