using sip-wheel on MacOS

Steve Borho steve at borho.org
Tue Apr 28 18:49:15 BST 2020



> On Apr 28, 2020, at 3:58 AM, Phil Thompson <phil at riverbankcomputing.com> wrote:
> 
> On 28/04/2020 04:55, Steve Borho wrote:
>> Hello,
>> On Linux and Windows I can use sip-wheel to build binary wheels that
>> will gladly use the Qt libraries packaged by PyQt5, by compiling
>> against the same local version of Qt.
>> But when I try this on Mac, it is linking in the full paths to the
>> local (homebrew) Qt libraries
>> $ otool -L foo.cpython-37m-darwin.so
>> foo.cpython-37m-darwin.so:
>> 	/usr/local/opt/qt/lib/QtPrintSupport.framework/Versions/5/QtPrintSupport
>> (compatibility version 5.14.0, current version 5.14.1)
>> 	/usr/local/opt/qt/lib/QtOpenGL.framework/Versions/5/QtOpenGL
>> (compatibility version 5.14.0, current version 5.14.1)
>> 	/usr/local/opt/qt/lib/QtWidgets.framework/Versions/5/QtWidgets
>> (compatibility version 5.14.0, current version 5.14.1)
>> 	/usr/local/opt/qt/lib/QtDataVisualization.framework/Versions/5/QtDataVisualization
>> (compatibility version 5.14.0, current version 5.14.1)
>> 	/usr/local/opt/qt/lib/QtGui.framework/Versions/5/QtGui (compatibility
>> version 5.14.0, current version 5.14.1)
>> I see that sip-wheel has an option for:
>>  --target-qt-dir DIR   the Qt libraries will be found in DIR when the wheel
>>                        is installed
>> but it is not clear how to target the PyQt5 packaged Qt libraries.
>> Has anyone else tackled this?  Thanks
> 
> Assuming you are going to package a Qt installation with your wheel using pyqt-bundle at a later stage then pass '--target-qt-dir Qt/lib'.
> 
> This will be documented in the next release of the PyQt docs.

Ideally the binaries in the wheel would use the Qt libraries in ../PyQt5/Qt/lib/* from site-packages.

Does my app need to package its own copy of the Qt libraries if it compiles its own shared library?

I just realized my Linux wheels have the same issue.  They are not using PyQt5/Qt/lib, they are relying on the Qt libraries being present where they were compiled.

Thanks,

Steve Borho


More information about the PyQt mailing list