Skip to content

Compiling PyQt5 on Ubuntu 12.04

mottosso edited this page Jan 1, 2015 · 21 revisions

This guide provides basic instructions on getting PyQt5 compiled on Ubuntu 12.04 x64 for Python 2.7

Prerequisites

To complete this compilation, you'll need to three things.

  1. Download and install Qt 5.3.1
  2. Download and unpack sip-4.16.5
  3. Download and unpack PyQt 5.3.2

5.4 was recently released, and it's quite likely that the process is identical to compiling 5.3.1, but I have yet to give it a try.

Installation

  1. Install Qt

image

# First turn the newly downloaded file into an executable
$ chomd +x qt-opensource-linux-x64-5.3.1.run
$ ./qt-opensource-linux-x64-5.3.1.run
  1. Install Dependencies
# Install C++ compiler for Make
$ sudo apt-get install build-essential

# Install Python source
$ sudo apt-get install python-dev

# Install PyQt-specific libraries for Ubuntu
$ sudo apt-add-repository ppa:ubuntu-sdk-team/ppa
$ sudo apt-get update
$ sudo apt-get install qtdeclarative5-dev
  1. Compile SIP
$ cd sip-4.16.5
$ python configure.py
$ make
$ sudo make install
  1. Compile PyQt
$ cd ../PyQt-gpl-5.3.2

# This takes a minute or two.
#
# --qmake: Tell compiler about location of Qt binaries
# --sip-incdir: Tell compiler about location of sip library
$ python configure.py --qmake ~/Qt5.3.1/5.3/gcc_64/bin/qmake --sip-incdir ../sip-4.16.5/siplib

# The PyQt makefile assumes the Python libraries that we just installed
# to be located in a different location than what Ubuntu has chosen to
# store them. We'll symlink the actual location into the assumed location.
$ sudo ln -s /usr/include/python2.7 /usr/local/include/python2.7

# Now we can run make.
# Note: This could potentially take an hour or two.
$ make

# This takes less than a minute
$ sudo make install

Done

PyQt should now be accessible from the version of Python you first ran configure.py with.

>>> import sys
>>> from PyQt5 import QtWidgets
>>> app = QtWidgets.QApplication(sys.argv)
>>> button = QtWidgets.QPushButton("Hello, World!")
>>> button.show()

If this produces a new window with a single button in it, you're good to go!

References

Welcome to the wiki for PyQt5 using Python 2.7. For Python 3.4, head here

Table of contents

Developer Resources

Compilation Instructions

Clone this wiki locally