Search code examples
pythonmacos64-bitpython-sip

How to check if a library is 32bit/64bit built on Mac OS X?


I'm having some trouble in using PyQt/SIP. I guess the SIP is compiled into 64bit, but Python has some problem with finding it.

  File "qtdemo.py", line 46, in 
    import sip
ImportError: dlopen(/Library/Python/2.6/site-packages/sip.so, 2): no suitable image found.  Did find:
        /Library/Python/2.6/site-packages/sip.so: mach-o, but wrong architecture
  • How do I know if a library (so/dylib) is 32bit or 64bit?
  • How do I know if my Python is 32bit or 64bit?

Solution

  • The file tool can be used to identify executables.

    Example:

    > file /Applications/TextEdit.app/Contents/MacOS/TextEdit 
    /Applications/TextEdit.app/Contents/MacOS/TextEdit: Mach-O universal binary with 2 architectures
    /Applications/TextEdit.app/Contents/MacOS/TextEdit (for architecture x86_64):   Mach-O 64-bit executable x86_64
    /Applications/TextEdit.app/Contents/MacOS/TextEdit (for architecture i386): Mach-O executable i386