Skip to content

Instantly share code, notes, and snippets.

@iddm
Last active March 1, 2023 01:44
Show Gist options
  • Save iddm/e01ab56d28a2c9467cc6 to your computer and use it in GitHub Desktop.
Save iddm/e01ab56d28a2c9467cc6 to your computer and use it in GitHub Desktop.
Install PyQt5 to Mac OS X Yosemite with python3
This snippet tested on Yosemite 10.10.1
1. Define your python3 directory (for example, "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/")
2. Download "http://download.qt-project.org/official_releases/qt/5.3/5.3.2/qt-opensource-mac-x64-clang-5.3.2.dmg" or any other new version of qt for mac and install it.
3. Download SIP sources here: http://www.riverbankcomputing.com/software/sip/download
4. Download PyQt5-gpl sources here: http://www.riverbankcomputing.com/software/pyqt/download5
5. Go to your downloads by terminal (for example, "cd ~/Downloads")
6. tar xvf PyQt-gpl-5.3.2.tar.gz
7. tar xvf sip-4.16.4.tar.gz
8. cd sip-4.16.4/
9. python3 configure.py -d /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3//site-packages --arch x86_64
10. make
11. sudo make install
12. sudo make clean
13. Change line "!host_build:QMAKE_MAC_SDK = macosx10.8" to "!host_build:QMAKE_MAC_SDK = macosx10.10" in ~/Qt5.3.2/5.3/clang_64/mkspecs/qdevice.pri
14. cd ../PyQt-gpl-5.3.2/
15. python3 configure.py --destdir /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages --qmake ~/Qt5.3.2/5.3.2/clang_64/bin/qmake
16. make
17. sudo make install
18. sudo make clean
@ClayLewis
Copy link

What error's are you getting, frozenyeti?

@wxyBUPT
Copy link

wxyBUPT commented Mar 2, 2016

thanks very much!

but I can't understand the first step " 1. Define your python3 directory ",

what should I do for the first step?

@iddm
Copy link
Author

iddm commented Apr 4, 2016

@wxyBUPT you need just to find out where is site-packages directory of your python3 installation. If you have few, you must remember it somehow and use in the steps below, for example, create an environment variable $SP_PYTHON_DIR=...(your dir). It is only needed for next steps (15 step).

@jonsavage
Copy link

Thanks for the guide.

If installing on 10.10.4 make sure to change macosx10.8 to macosx10.10.11 on step 13

@SarchB
Copy link

SarchB commented Jan 25, 2017

Ok, this worked for my macOS 10.12.2 / Qt 5.80 / PyQt5.7.1 / sip 4.19 / Python3.5 installation up until step 13.

The file ~/Qt5.3.2/5.3/clang_64/mkspecs/qdevice.pri however did not contain any !host reference and simply adding it myself did not help.

Then I found this post on Stack Overflow. It stated I should run:

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

which worked like a charm all the way up to step 15.

During step 15 however, I received the error:

This is the GPL version of PyQt 5.7.1 (licensed under the GNU General Public
License) for Python 3.5.3 on darwin. Error: This version of PyQt5 and the commercial version of Qt have incompatible licenses.

I was able to fix that error by commenting out some lines in PyQt5 configure.py as instructed here.

Then, I continued and the command from step 15 executed without a problem.

However, now, when I run make (step 16) I am receiving this error:

~/Downloads/PyQt5_gpl-5.7.1/QtCore/sipQtCoreQt.cpp:1093:62: error: no member named 'WindowCancelButtonHint' in namespace 'Qt'; did you mean
'WindowCloseButtonHint'?
{sipName_WindowCancelButtonHint, static_cast( ::Qt::WindowCancelButtonHint), 419},
~~~~~~^~~~~~~~~~~~~~~~~~~~~~
WindowCloseButtonHint
../../../Qt5.8.0/5.8/clang_64/lib/QtCore.framework/Headers/qnamespace.h:300:9: note: 'WindowCloseButtonHint' declared here
WindowCloseButtonHint = 0x08000000,
^
~/Downloads/PyQt5_gpl-5.7.1/QtCore/sipQtCoreQt.cpp:1106:58: error: no member named 'WindowOkButtonHint' in namespace 'Qt'
{sipName_WindowOkButtonHint, static_cast( ::Qt::WindowOkButtonHint), 419},
~~~~~~^
2 errors generated.
make[1]: *** [sipQtCoreQt.o] Error 1
make: *** [sub-QtCore-make_first-ordered] Error 2

Does anyone have any idea how to fix this?

@kmcintyre
Copy link

Edited the sipQtCoreQt.cpp and removed the 2 offending lines.

http://patchwork.ozlabs.org/patch/720187/

This worked fine on ubuntu.

This patch gave me the confidence that I wasn't totally messing up my computer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment