[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pykde
Subject:    Re: [PyQt] Private sip modules conflict with public sip module
From:       Scott Talbert <swt () techie ! net>
Date:       2019-08-19 0:31:38
Message-ID: 56662201-1275-41C0-9155-46A281FB8BD6 () techie ! net
[Download RAW message or body]



On August 18, 2019 12:31:59 PM EDT, Phil Thompson <phil@riverbankcomputing.com> wrote:
> On 18/08/2019 16:52, Scott Talbert wrote:
> > On August 18, 2019 11:39:22 AM EDT, Scott Talbert <swt@techie.net> 
> > wrote:
> > > 
> > > 
> > > On August 18, 2019 11:03:21 AM EDT, Phil Thompson
> > > <phil@riverbankcomputing.com> wrote:
> > > > On 18/08/2019 15:45, Scott Talbert wrote:
> > > > > 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
> > > > 
> > > > wxpython uses a private copy of the sip module so I don't see what
> is
> > > > importing a top-level sip module in that situation.
> > > 
> > > I guess I left out an important detail.  I patch wxPython to use the
> > > top-level sip module.
> > 
> > But this is just one example.  I guess the bottom line is: do you
> > consider this a bug, or is your answer that no one should using the
> > top-level sip module?
> 
> No up to date package should be using a top-level sip module.
> 
> If you are patching wxpython(!) then you can remove the reference PyQt 
> adds sys.modules first.

That seems way too fragile.  I would have to do that anywhere wx imports sip, and any wx users \
that use sip would have to do it too.

I can probably live with switching back to the namespaced sip module though.

Scott
_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
https://www.riverbankcomputing.com/mailman/listinfo/pyqt


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic