[PyQt] Private sip modules conflict with public sip module

Scott Talbert swt at techie.net
Sun Aug 18 15:45:44 BST 2019


On Sun, 18 Aug 2019, Phil Thompson wrote:

>> See the below example:
>> 
>> $ python3
>> Python 3.7.4 (default, Jul  9 2019, 16:32:37)
>> [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)] on linux
>> Type "help", "copyright", "credits" or "license" for more information.
>>>>> import PyQt5.sip
>>>>> import sip
>>>>> sip
>> <module 'PyQt5.sip' from 
>> '/usr/lib64/python3.7/site-packages/PyQt5/sip.so'>
>>>>> 
>> 
>> Basically, if you import a private sip module and then import the
>> public one, it doesn't work.  It seems to be due to this:
>> 
>> https://www.riverbankcomputing.com/hg/sip/file/4.19-maint/siplib/siplib.c#l1293
>
> Why would you want to do that?

I don't particularly *want* to do that, but it happens in the wild with 
applications.  For example:

fsleyes imports matplotlib
matplotlib imports PyQt as part of its backend detection
fsleyes imports wxpython
wxpython imports sip -> fail

Scott


More information about the PyQt mailing list