[Pythonmac-SIG] py2app and PyQt: QT plugins cause loading multiple QT library versions

Michael McCracken michael.mccracken at gmail.com
Thu May 31 21:46:54 CEST 2012


New user, so new thread, in reference to "(PyQt and py2app) Gui starts
in IDLE but not as app".

This happens when Qt loads image plugins from the
system location (likely set during Qt's configure), which
then load the system Qt.

The problem and a workaround are described here:
http://lists.trolltech.com/qt-interest/2008-09/thread00258-0.html

py2app's PyQt sample doesn't exercise enough of Qt to hit this problem.
I'm not sure exactly what part of Qt you'd need to trigger it, but
I guess the Color Picker might work.

The quick way, if you know you don't need these plugins, is to
create an empty qt.conf file at MyApp.app/Contents/Resources/qt.conf.

The plugin search path can be set in that qt.conf, or an empty one
just stops it from looking for plugins.
I've verified that an empty file avoids the issue, haven't tested
setting the path.

For py2app, I guess some thought is required for a nice API to handle
this case, since these are C dylibs that won't be detected at bundle time.
Ideally, we could have an option that takes a list of qt plugins we need,
and creates the appropriate qt.conf.

There isn't a quick way to add this in, so I thought I'd ask for comments
on how it should be designed. I will probably need plugin support soon,
and I'd like to be able to contribute the change back.

Thanks,
-mike


More information about the Pythonmac-SIG mailing list