Hello all,

I was able to successfully embed python code into C code. The basic
skeleton is something like this :

In C code :
PyObject *pName, *pModule, *pFunc,*pArgs,*pReturn;
 PyArrayObject *cusForce;
Py_Initialize();
import_array(); // required while using numpy arrays in C
        // Call some python code
        // Py_Decref all the used values
        Py_Finalize()

Py_Finalize caused segmentation faults when numpy was one of import modules
[node1:05762] Failing at address: 0x1
[node1:05762] [ 0] /lib64/libc.so.6 [0x3afa630280]
[node1:05762] [ 1]
/usr/lib64/python2.4/site-packages/numpy/core/multiarray.so [0x2b4e950aaf37]
[node1:05762] [ 2]
/usr/lib64/python2.4/site-packages/numpy/core/multiarray.so [0x2b4e950dd1d0]
[node1:05762] [ 3]
/usr/lib64/python2.4/site-packages/numpy/core/multiarray.so [0x2b4e950e22fa]
[node1:05762] [ 4] /usr/lib64/libpython2.4.so.1.0(PyObject_IsTrue+0x37)
[0x2b4e8a683c77]

Which could be avoided by not calling Py_Finalize. But without calling
Py_Finalize(), I am having huge memory leaks
as the process keeps on increasing its memory usage as I see in top.

Is there any clean way of calling Py_Finalize() when using numpy.
Thanks
santhosh
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to