如何在Python 3中安装PyQt5(Ubuntu 14.04)

eri*_*i0o 21 python-3.x pyqt5 ubuntu-14.04

我需要将Python2 + PyQt4的一些代码移植到Python3 + PyQt5.

我开始安装pip3

sudo apt-get install python3-pip
Run Code Online (Sandbox Code Playgroud)

效果很好.试着

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
Run Code Online (Sandbox Code Playgroud)

在线我找到以下步骤:

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

但他们太多了.在Ubuntu 14.04中安装PyQt5和Python3的最简单方法是什么?

The*_*ler 45

为什么不简单地通过apt-get安装它?

sudo apt-get install python3-pyqt5

否则你必须手工编译PyQt(和潜在的Qt),这很麻烦.

  • 我不知道这是可能的. (2认同)

Ujj*_*wal 19

那么我在这里记录了使用qt设计器和代码生成安装pyqt5的步骤: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
Run Code Online (Sandbox Code Playgroud)

配置从终端运行

$ qtchooser -run-tool=designer -qt=5
Run Code Online (Sandbox Code Playgroud)

要么

写下以下内容 /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
Run Code Online (Sandbox Code Playgroud)

代码生成

创建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'))
Run Code Online (Sandbox Code Playgroud)
$ chmod +x uic.py
Run Code Online (Sandbox Code Playgroud)

创建符号链接:

$ sudo ln uic.py "/usr/lib/x86_64-linux-gnu/qt5/bin/uic"
Run Code Online (Sandbox Code Playgroud)

桌面输入

[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
Run Code Online (Sandbox Code Playgroud)

使用.desktop扩展名保存在〜/ .local/share/application中