2010-10-12 46 views
0

嘿团伙,所以我写了一些C代码的SWIG包装。我试图弥合scipy数组和C数组之间的差距,我知道它很混乱。SWIG + SCIPY =导入PyArray_TYPE错误

undefined symbol: PyArray_TYPE 

我添加下面我痛饮接口文件:一个干净的汇编(嗯......这还不包括一些警告...)我得到这个问题,当我加载蟒蛇,痛饮-C模块后 - 我用swig-pythonc教程来编写这个东西:

%module pycimpl 

%{ 
    #define SWIG_FILE_WITH_INIT 
    #include "cimpl.h" 
%} 

%include "numpy.i" 
%init %{ 
    import_array(); 
%} 

%include "typemaps.i" 

%apply (double* INPLACE_ARRAY1, int DIM1, int* INPLACE_ARRAY2, int DIM2, int* INPLACE_ARRAY3, int DIM3, double* INPLACE_ARRAY4, int DIM4, double* OUTPUT) { (double a[], int adim, int rowidx[], int rowidxdim, int colstr[], int colstrdim, double x[], int xdim, double* zeta) } 

double cimpl(double a[], int adim, int ridx[], int ridxdim, int cstr[], int cstrdim, double x[], int xdim, double* zeta); 

%include "cimpl.h" 

任何帮助将不胜感激!

干杯!

CT

回答

0

你为什么不使用ctypes的或耐热玻璃/用Cython而不是痛饮? (请参阅Python: SWIG vs ctypes

+0

我在过去有过ctypes的一些跨平台问题。当时,我还没有听说过cython,它还处于初级阶段。 Pyrex似乎正在解决与SWIG相同的问题(我只是对SWIG更加熟悉),所以我选择坚持我已经熟悉的事情,而SWIG已经在这个区块上花了很长时间。 – 2011-04-14 01:10:47