I recently upgraded my Mac to OS 10.6 and I had to rebuild Qt and PyQt to get them working again. I installed Qt 4.5.3 from source and then installed sip 4.9.1 and PyQt4.6.1. Immediately it failed to work with the following error:
>>> from PyQt4 import QtCore Traceback (most recent call last): File "
", line 1, in ImportError: dlopen(/Library/Python/2.6/site-packages/PyQt4/QtCore.so, 2): Symbol not found: _sipQtConnect Referenced from: /Library/Python/2.6/site-packages/PyQt4/QtCore.so Expected in: flat namespace in /Library/Python/2.6/site-packages/PyQt4/QtCore.so
Some quick searching led me to this post, which implied that hacking PyQt’s configure.py file to force the architecture to be 64-bit would do the trick.
So where it says:
for a in sipcfg.arch.split(): if a == 'i386': qmake_archs.append('x86_64') elif a == 'x86_64': qmake_archs.append('x86_64') elif a == 'ppc': qmake_archs.append('ppc')
Replace qmake_archs.append('x86') with qmake_archs.append('x86_64').
Now PyQt works again.