Thursday, January 13, 2011

Finding Python (for PyObjC) 3

Just a short post to say that I asked about this on Stack Overflow and got a very nice answer from Ned Deily (here). He explains clearly what the different "executables" are about, and reminds me of a tool I'd overlooked: otool. For example

> otool -L /System/Library/Frameworks/Python.framework/Versions/2.6/Resources/
/System/Library/Frameworks/Python.framework/Versions/2.6/Python (compatibility version 2.6.0, current version 2.6.1)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0)

Although it is not so helpful here:

> otool -L /System/Library/Frameworks/Python.framework/Versions/2.6/bin/python
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0)

I still think the export DYLD_PRINT_LIBRARIES=1 trick is pretty cool.

You can also look into nm (like here).

I found at Source Forge (here) and tried it. It gave me quite a bit of insight into the structure of our simple examples from the other day (here). The screenshot above is from a run on its own executable. There is very detailed info on the object code (or images in geek-speak).

I had been a bit worried about it since I can't find out anything about the guy (Peter Saghelyi). But I found the source, which is not under files. Do:

svn co machoview