Rolf Wester wrote: > Hi, > > I' trying to make an extension module that passes Numeric arrays. The > wrapper function is (swig generated and modified by myself): > > static PyObject *_wrap_my_func(PyObject *self, PyObject *args) { > PyObject * resultobj = 0 ; > PyObject * obj0 = 0 ; > PyArrayObject * mat = 0 ; > > std::cout << __FILE__ << " " << __LINE__ << std::endl; > if(!PyArg_ParseTuple(args,(char *)"O:my_func",&obj0)) goto fail; > std::cout << __FILE__ << " " << __LINE__ << " " << obj0 << > std::endl; > mat = (PyArrayObject *) PyArray_ContiguousFromObject(obj0, > PyArray_DOUBLE, 1, 1); > std::cout << __FILE__ << " " << __LINE__ << " " << mat << std::endl; > > Py_INCREF(Py_None); resultobj = Py_None; > return resultobj; > fail: > return NULL; > } > > The shared object is build with: > > g++ -c -g -fPIC -I./ -I/usr/local/include/python2.4 > -I/usr/local/include/python2.4/Numeric mytest_wrap.cpp -o mytest_wrap.o > > g++ -shared -L/usr/local/lib/python2.4/config/ mytest_wrap.o > -lpython2.4 -lm -o _mytest.so > > > the Python file reads: > > import _mytest > from Numeric import * > mat = ones(100,Float64) > print _mytest.my_func(mat) > > When running this I get the output: > > mytest_wrap.cpp 1499 > mytest_wrap.cpp 1502 0x402b55e8 > Speicherzugriffsfehler (segmentation fault)
Did you call import_array() in init_mytest()? -- Robert Kern [EMAIL PROTECTED] "In the fields of hell where the grass grows high Are the graves of dreams allowed to die." -- Richard Harter -- http://mail.python.org/mailman/listinfo/python-list