Good day!
I was trying my hand at wrapping a PyQt application, and I stumbled on the plugin issue that seems to have plagued many here, where the plugins load another copy of the Qt frameworks, indicated as such:

On Mac OS X, you might be loading two sets of Qt binaries into the same process. Check that all plugins are compiled against the right Qt binaries. Export DYLD_PRINT_LIBRARIES=1 and check that only one set of binaries are being loaded.

I looked a bit at how to fix this, and here is what worked for me. I have not yet written code to automate this process; but this description may be useful to people willing to fix executables by hand.

a) copy the plugin directory from /Developer/Applications/Qt/plugins to dist/<application.app>/Contents/plugins

b) Create a file dist/<application.app>/Contents/Resources/qt.conf
with contents as follows:
[Paths]
qt_plugpath=plugins

The path is relative to Contents. Another path could be chosen, that could be more congenial to py2app.

c) Adjust the paths of the plugins with install_name_tool. Eg, from the shell:

find dist/<application.app>/Contents/plugins -type f -exec install_name_tool -change QtGui.framework/Versions/4/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui {} ';' find dist/<application.app>/Contents/plugins -type f -exec install_name_tool -change QtGui.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore {} ';'
(and so on if you need QtWebKit etc.)

Cheers,
Marc-Antoine Parent

_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig

Reply via email to