470,834 Members | 1,531 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,834 developers. It's quick & easy.

Num Array problem with Embedding python in C

I'm having a problem ........

I've stripped all my code to help isolate the problem.

Its seems to be with importing numarray when python is embedded in C.

I have a simple C program it Opens Python imports a script and
then Closes Python

like so .......

int main(int argc,char *argv[])
{

int count = 0;
PyObject *pmod;

while ( count < 10)
{

/*
** Initialize Python
*/

Py_Initialize();
printf("\nOpen Python ---- >");

pmod = PyImport_ImportModule("test");

Py_DECREF(pmod);

/*
** Close Python
*/

Py_Finalize();
printf("\n<---- Closed Python");
/*
** Do this 10 times !
*/
count++;

}
getchar();
return(0);

}

and thats it !

The script it calls is test.py its very simple , it imports numarray
and then returns. like so .......

-----------------------
test.py
-----------------------
#Imports
from numarray import *

def test_func():
return (99)
-----------------------
end of file
-----------------------
The first time it is called from my C code
it all works fine ! ( but only the first time ! )

In the second iteration above test .c crashes

It has something to do with importing numarray.
Beacase if you comment out the import line i.e

-----------------------
test.py
-----------------------
#Imports
# Commented out !
#from numarray import *

def test_func():
return (99)
-----------------------
end of file
-----------------------

its scrolls through the while loop and works fine.

Its all very odd . any ideas ?
I'm using Python 2.3.3 and Python 2.3 numarray - 0.8

Thanks in advance

Keith.
Jul 18 '05 #1
1 1833
yo***********@hotmail.com wrote:
I'm having a problem ........

I've stripped all my code to help isolate the problem.

Its seems to be with importing numarray when python is embedded in C.

I have a simple C program it Opens Python imports a script and
then Closes Python

like so .......

int main(int argc,char *argv[])
{

int count = 0;
PyObject *pmod;

while ( count < 10)
{

/*
** Initialize Python
*/

Py_Initialize();
printf("\nOpen Python ---- >");

pmod = PyImport_ImportModule("test");

Py_DECREF(pmod);

/*
** Close Python
*/

Py_Finalize();
printf("\n<---- Closed Python");
/*
** Do this 10 times !
*/
count++;

}
getchar();
return(0);

}

and thats it !

The script it calls is test.py its very simple , it imports numarray
and then returns. like so .......

-----------------------
test.py
-----------------------
#Imports
from numarray import *

def test_func():
return (99)
-----------------------
end of file
-----------------------
The first time it is called from my C code
it all works fine ! ( but only the first time ! )

In the second iteration above test .c crashes


From: http://www.pfdubois.com/numpy/html2/numpy-13.html

************************************************** ***********************
The Numeric installation process installed arrayobject.h in a subdirectory
Numeric in your Python include path, so you should include it this way:

#include "Numeric/arrayobject.h"
Is your C extension using Numeric blowing up? Maybe you didn't call
import_array(). If the extension is not in a single file, also define
PY_ARRAY_UNIQUE_SYMBOL.
In addition to including arrayobject.h , the extension must call import_array()
in its initialization function, after the call to Py_InitModule() . This call
makes sure that the module which implements the array type has been imported,
and initializes a pointer array through which the NumPy functions are called.
If you forget this call, your extension module will crash on the first call to
a NumPy function.

************************************************** ***********************

This referst to Numeric, but I'm sure the same issue exists with Numarray (I
still use Numeric, so I don't know the details with numarray).

cheers,

f
Jul 18 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

4 posts views Thread by Anand K Rayudu | last post: by
23 posts views Thread by Robey Holderith | last post: by
4 posts views Thread by Alicia Haumann | last post: by
1 post views Thread by amit | last post: by
1 post views Thread by Tommy Nordgren | last post: by
4 posts views Thread by adsheehan | last post: by
1 post views Thread by freesteel | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.