2010-10-12 80 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