embedding python
Michael Olberg
olberg at oso.chalmers.se
Mon Oct 21 03:20:59 EDT 2002
Hej,
I had earlier written an application which embedded Python and which
worked fine. After an upgrade to python 2.1.1 the program started to
fail. In an attempt to debug it, I started from scratch, using the
example code of a minimalist program that embeds Python, taken from the
'Linux Programming' book:
----------------------- mypy.c --------------
#include <stdio.h>
#include "Python.h"
int main(int argc, char *argv[])
{
int rc;
Py_SetProgramName(argv[0]);
Py_Initialize();
PySys_SetArgv(argc, argv);
rc = PyRun_AnyFile(stdin, "???");
Py_Finalize();
return rc;
}
---------------------------------------------
I compile and link it like this:
gcc -c -I/usr/include/python2.1 mypy.c
gcc -o mypy mypy.o /usr/lib/python2.1/config/libpython2.1.a \
-ldl -lutil -lpthread -lieee -lm
When I run it, I can enter Python code interactively as expected. Importing
modules like 'sys' and 'string' and using them works fine, but when I do
'import Numeric' I get
Traceback (most recent call last):
File "???", line 1, in ?
File "/usr/lib/python2.1/site-packages/Numeric/Numeric.py", line 86, in ?
import multiarray
ImportError: /usr/lib/python2.1/site-packages/Numeric/multiarray.so:
undefined symbol: PyInt_FromLong
So obviously there is a problem to dynamically resolve entry points in
the Numeric module. The Numeric module works just fine when I use it with
Python directly. I have no idea what's going on here. Could someone let me
know how to proceed?
/Michael
---------------------------------------------------------------------------
Michael Olberg | e-mail: olberg at oso.chalmers.se
Onsala Space Observatory | tel: +46-31-7725507 (work) +46-300-10778 (home)
S-43992 Onsala, SWEDEN | fax: +46-31-7725590
-------------------- This quote left blank intentionally ------------------
More information about the Python-list
mailing list