我正在尝试编译在scipy.weave中使用的C ++模块,该模块由几个标头和源C ++文件组成。 这些文件包含广泛使用Numpy / C-API接口的类和方法。 但是我无法弄清楚如何成功包含import_array() 。 在过去的一周里,我一直在为此苦苦挣扎,而且我疯了。 我希望您能帮助我,因为weave 帮助不是很好的解释。
在实践中,我首先有一个名为pycapi_utils的模块,其中包含一些例程,用于将C对象与Python对象接口。 它pycapi_utils.h文件pycapi_utils.h和源文件pycapi_utils.cpp例如:
//pycapi_utils.h
#if ! defined _PYCAPI_UTILS_H
#define _PYCAPI_UTILS_H 1
#include
#include
#include
#include
#include
typedef std::tuple pykeyval; //Tuple type (string,Pyobj*) as dictionary entry (key,val)
typedef std::list kvlist;
//Declaration of methods
PyObject* array_double_to_pyobj(double* v_c, long int NUMEL); //Convert from array to Python list (double)
...
...
#endif
和
//pycapi_utils.cpp
#include "pycapi_utils.h"
PyObject* array_double_to_pyobj(double* v_c, lo