Как установить PyQt5 в Python 3 (Ubuntu 14.04)

Мне нужно портировать код Python2 + PyQt4 на Python3 + PyQt5.

Я начал устанавливать pip3

sudo apt-get install python3-pip

Прекрасно работает. Пытался

sudo pip3 install PyQt5
Downloading/unpacking PyQt5
  Could not find any downloads that satisfy the requirement PyQt5
Cleaning up...
No distributions at all found for PyQt5

В Интернете я нахожу следующие шаги:

http://pyqt.sourceforge.net/Docs/PyQt5/installation.html

Но их слишком много. Какой самый простой способ установить PyQt5 вместе с Python3 в Ubuntu 14.04?

Ответ 1

Почему бы просто не установить его с помощью apt-get?

sudo apt-get install python3-pyqt5

В противном случае вам придется вручную скомпилировать PyQt (и потенциально Qt), что громоздко.

Ответ 2

Ну, я документировал шаги для установки pyqt5 с дизайном qt и созданием кода здесь: https://gist.github.com/ujjwal96/1dcd57542bdaf3c9d1b0dd526ccd44ff

Монтаж

pip3 install --user pyqt5  
sudo apt-get install python3-pyqt5  
sudo apt-get install pyqt5-dev-tools
sudo apt-get install qttools5-dev-tools

Настройка для запуска с терминала

$ qtchooser -run-tool=designer -qt=5

ИЛИ

Напишите следующее в /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

/usr/lib/x86_64-linux-gnu/qt5/bin
/usr/lib/x86_64-linux-gnu

Генерация кода

Создайте файл uic.py.

#!/usr/bin/python3

import subprocess
import sys

child = subprocess.Popen(['pyuic5' ,'-x',sys.argv[1]],stdout=subprocess.PIPE)

print(str(child.communicate()[0],encoding='utf-8'))

$ chmod +x uic.py

Создайте символическую ссылку:

$ sudo ln uic.py "/usr/lib/x86_64-linux-gnu/qt5/bin/uic"

Вход для рабочего стола

[Desktop Entry]
Name=Qt5 Designer
Icon=designer
Exec=/usr/lib/x86_64-linux-gnu/qt5/bin/designer
Type=Application
Categories=Application
Terminal=false
StartupNotify=true
Actions=NewWindow

Name[en_US]=Qt5 Designer

[Desktop Action NewWindow]
Name=Open a New Window
Exec=/usr/lib/x86_64-linux-gnu/qt5/bin/designer

сохранить в ~/.local/share/application с расширением.desktop

Ответ 3

извините, но $) chmod +x uic.py не работает