2010-10-12 10 views
0

Hey gang, donc j'ai écrit un wrapper swig pour du code C. J'essaie de combler le fossé entre les tableaux scipy et les tableaux C, que je sais être en désordre. Après une compilation propre (bien ... sans compter quelques avertissements ...) Je reçois ce problème lorsque je charge le python-rasade-c Module:SWIG + SCIPY = Erreur d'importation sur PyArray_TYPE

undefined symbol: PyArray_TYPE 

J'ai ajouté mon fichier d'interface ci-dessous rasade - Je l'ai utilisé le tutoriel rasade-pythonc pour écrire ce genre de choses:

%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" 

Toute aide serait grandement appréciée!

À la votre!

ct

Répondre

0

Pourquoi utilisez-vous pas ctypes ou pyrex/cython au lieu de SWIG? (voir Python: SWIG vs ctypes)

+0

J'ai eu quelques problèmes de plate-forme croisée avec les types de ctypes dans le passé. À l'époque, je n'avais pas entendu parler de Cython et c'était encore à ses balbutiements. Pyrex semblait résoudre le même problème que SWIG (je connais juste mieux SWIG), alors j'ai choisi de m'en tenir à quelque chose que je connaissais déjà, et SWIG a fait le tour du bloc beaucoup plus longtemps. –