2015-11-24

Python3.5 + PyQt5 - The Hard Way

Сегодня мы, в продолжение предыдущей статьи, установим библиотеку PyQt5 для собранного из исходников Python3.5. Для версии Python3, идущей в репозитории дистрибутива есть простой путь, и в общем случае лучше придерживаться его - он проще и дает аналогичный результат.


sudo apt-get install python3-pyqt5 pyqt5-dev-tools

Маководам тоже повезло, им также хватит одной строки (если стоит Homebrew, а куда ж без него?):


brew install pyqt5

Тех же, кто не ищет легких путей или кому нужна именно собственноручно собранная версия, милости прошу к прочтению.

Итак, поехали. Для начала, скачиваем подходящий установщик Qt5, мне нужен был для Linux x64, запускаем и устанавливаем, можно в каталог по умолчанию ~/Qt.

Качаем и распаковываем свежие версии PyQt5 и sip отсюда: http://sourceforge.net/projects/pyqt/files/. Помним, что мы установили python в локальный каталог ~/local. В каталоге с распакованным sip конфигурируем и устанавливаем:


python3 configure.py -d ~/local/lib/python3.5/site-packages/
make
make install

Для успешной сборки GUI модулей PyQt5 (типа PyQt5.QtWidgets) пришлось установить пакетик с исходниками mesa:


sudo apt-get install libgl1-mesa-dev

Теперь в каталоге с распакованным PyQt5 конфигурируем и устанавливаем:


python3 configure.py --destdir ~/local/lib/python3.5/site-packages/\
 --qmake ~/Qt/5.5/gcc_64/bin/qmake --disable QtPositioning
make
make install

Почему здесь фигурирует "--disable QtPositioning"? Потому что иначе не собирается, выбрасывая сообщение "qgeolocation.h: No such file or directory". Да и шут с ним. Вот собственно и всё, можно начинать писать код.


from PyQt5.QtWidgets import QApplication, QWidget
app = QApplication([])
w = QWidget()
w.resize(300, 200)
w.move(400, 400)
w.setWindowTitle('PyQt5 installed')
w.show()

Получите, распишитесь.

Комментариев нет: