[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