I'm unable to get the dynamic Python modules to import/load correctly on LynxOS4 (a realtime OS that has gcc, shared libs, and many other UNIXisms). Make excerpt: ... running build running build_ext platform = lynxos4 (my comment in setup.py) building 'struct' extension creating build creating build/temp.lynxos-4.0.0-PowerPC-2.2 gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fvec -fPIC -mshared -mthreads -I. -I/usr/local/src/Python-2.2.2/./Include -I/usr/local/include -I/usr/local/src/Python-2.2.2/Include -I/usr/local/src/Python-2.2.2 -c /usr/local/src/Python-2.2.2/Modules/structmodule.c -o build/temp.lynxos-4.0.0-PowerPC-2.2/structmodule.o creating build/lib.lynxos-4.0.0-PowerPC-2.2 gcc -shared -mshared -mthreads build/temp.lynxos-4.0.0-PowerPC-2.2/structmodule.o -L/usr/local/lib -o build/lib.lynxos-4.0.0-PowerPC-2.2/struct.so WARNING: removing "struct" since importing it failed ... (all the other modules fail the same way) I hacked setup.py to stop "removing" the bad module files and brought up the python interpreter to try the import by hand: bash-2.02# ./python Python 2.2.2 (#4, Apr 21 2003, 16:39:51) [GCC 2.95.3 20010323 (Lynx)] on lynxos4 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path += ['/usr/local/src/Python-2.2.2/build/lib.lynxos-4.0.0-PowerPC-2.2'] >>> import struct Traceback (most recent call last): File "<stdin>", line 1, in ? ImportError: Symbol not found: "PyInt_Type" >>> (btw, it would be nice if 'ImportError: Symbol not found: "PyInt_Type"' was emitted without all the debugging by hand -- actually it would be nice if many python exceptions (IndexError: list index out of range comes to mind) were rather more helpful about what is wrong, all this debugging via divination is a bit hard on us newbies!) PyInt_Type is declared in Objects/intobject.o and is visible in the python binary (the one doing the dlopen()). I'm not that familiar with dlopen() but shouldn't references from the .so being loaded to the loading program be resolved by dlopen during load? Running nm on 'python' gives '004d2d3c D PyInt_Type' so all the python symbols are being exported properly. Any ideas on how to resolve this run-time symbol lookup error? Nagging thoughts: LynxOS seems to shy away from shared libraries (they live in a special nonstandard directory and not all libraries have shared versions). Should I be thinking about doing a static python? If so, I will need to abandon dlopen() completely right? But I also want to use tkinter and the X11 libs to so I don't think static is really what I want! -- Duane Voth duanev@io.com -- duanev@atlantis.io.com
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4