> It seems like the bootloader is working now. That was my conclusion too. :-)
> > So it seems I have (at least) two problems left to resolve: > > > 1) I should prevent libc.a and libpthreads.a from being packaged along > > with the application. I guess it is the regexes in bindepend.py which > > does not work for AIX, as they incorrectly assume all shared libs ends > > with ".so". > > yes, that's correct. Maybe there are more libraries with .a which should > be also ignored. Yes, I have been experimenting and actually I could remove all of them (except of course libpython). I will have to test it on a clean AIX installation with no devel tools installed. (I hope I can find such a (virtual) machine here.) > > 2) Python cannot find packages to import unless the current working > > dir contains the shared objects. Any ideas how to fix this? Sorry, I phrased that incorrectly. I believe PyInstaller has correctly packed all the Python so libs into the application dir. When my current working dir (cwd) is in the folder of the packaged --onedir application everything works. E.g. -bash-3.00$ cd test -bash-3.00$ ./test Hello PyInstaller! -bash-3.00$ However, if I go up one level, it fails: -bash-3.00$ cd .. -bash-3.00$ test/test mod is NULL - structTraceback (most recent call last): File "/opt/freeware/lib/python2.6/struct.py", line 1, in <module> ImportError: No such file or directory mod is NULL - archiveTraceback (most recent call last): File "/data/maconomy/mgd/pyinstaller-patches/2nd/pyinstaller/ archive.py", line 42, in <module> ImportError: No module named struct Traceback (most recent call last): File "<string>", line 25, in <module> ImportError: No module named archive -bash-3.00$ It seems that either the search path is not set correctly _or_ the current working dir is not set correctly before loading Python. I guess this is a problem in the boot loader. Do you know where to look? > Look for linux specific python code which is not adjusted for AIX. > > Add some print statements to the code where python module dependencies > are analyzed. > > look at tools 'ldd' and 'objdump' if these are available on your AIX > devel. machine and look how these are used in pyinstaller if their > output is properly parsed by pyinstaller. > (maybe their output could is formatted differently and thus is not > properly parsed by pyinstaller) I already did that and also changed code in 'Build.py' and 'bindepend.py' to accomodate for differences in naming of shared libs (.s vs .so) and differences in 'ldd' output on AIX. On Linux each 'ldd' output line is something like this "libname => libpath (address)" whereas on AIX is is "libpath(sharedobj)". So I am pretty sure PyInstaller picks up all libraries (and forgets to exclude some like 'libc'). > Some hints: > - i would recommend focusing on --onedir mode only for now (onefile is > harder) > - use option --debug for ./Makespec.py to get more debug messages > - in iu.py at the top in debug(msg) function enable debugging to see at > runtime what modules are loaded Thanks for the tips! > - do not worry about trunk, I can do the backport of AIX support Thank you. However, I already did it (with my previous patch), so if I have time, I might do it or you, as I can also test if it works. /Martin -- You received this message because you are subscribed to the Google Groups "PyInstaller" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/pyinstaller?hl=en.
