[PyQt] Pylint and PyQt4 Bus Errors

Derek Harland derek at chocolate-fish.com
Wed Jul 29 12:05:52 BST 2009

Hi Sylvain (and hopefully some helpful PyQt people!)

* As noted earlier, after applying my patch to get pylint to recognise  
PyQt4, pylint will Bus Error depending on import order
     from PyQt4 import QtCore, QtGui      # will cause pylint to  
     from PyQt4 import QtGui , QtCore     # pylint is happy ...

* After a long fight of constant crashes I've debugged down to the  
statement that actually crashes :-)
* Its because there is something strange about QtCore.QSignalMapper,  
and here is the problem replicated ...

 >>> from PyQt4 import QtCore
 >>> isinstance(QtCore.QSignalMapper, types.MethodType)
Bus error

However this works ...

 >>> from PyQt4 import QtCore, QtGui
 >>> isinstance(QtCore.QSignalMapper, types.MethodType)

pylint sparks a crash (or rather logilab.astng.builder does) as it  
will attempt to import and fully analyse QtCore before loading QtGui.
I'm hoping Phil at Riverbank Software might be able to cast some light  
on what state QSignalMapper might be in before QtGui exists ...

Kind regards

[Machine details:
   - OSX10.5 running macports python 2.6.2
   - PyQt4.5.4, sip 4.8.2
   - pylint 0.18, logilab.astng 0.19, logilab.common 0.42

More information about the PyQt mailing list