在适用于Python3.6的Raspberry上安装PyQt5

时间:2019-03-08 11:13:53

标签: python install pyqt5 raspberry-pi3

由于在老帖子或其他论坛中我都找不到答案,因此我想向stackoverflow社区寻求建议。

我正在使用9.4版本(树莓派pi 3B +)和4.14.71-v7内核。

我使用python3.6。我将其安装如下:

sudo apt-get install build-essential checkinstall
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

cd /usr/src
sudo wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
sudo tar xzf Python-3.6.0.tgz

sudo -s
cd Python-3.6.0
bash configure
make altinstall
exit

安装没有任何麻烦,并且一切正常。

现在我想为python3.6安装PyQt5模块。我通常使用

sudo python3.6 -m pip install ...

用于为python3.6安装模块。尝试

sudo python3.6 -m pip install pyqt5

给我错误消息

 Could not find a version that satisfies the requirement PyQt5 (from versions: )
 No matching distribution found for PyQt5

所以我尝试了

sudo apt-get update
sudo apt-get install qt5-default pyqt5-dev pyqt5-dev-tools

但是它在树莓派上安装了适用于python3.5的PyQt5。

所以有人知道如何为后续安装使用或安装PyQt5 python3.6?

编辑08.03.2019:
感谢FlyingTeller。我开始从源代码构建。我遵循以下步骤 您的链接。

sudo apt-get update
cd /usr/src
sudo wget https://www.riverbankcomputing.com/static/Downloads/sip/sip-4.19.14.tar.gz
sudo tar xzf sip-4.19.14.tar.gz
cd sip-4.19.14
sudo -s
python3.6 configure.py --sip-module=PyQt5.sip 
make
make install

cd /usr/src
sudo wget https://www.riverbankcomputing.com/static/Downloads/PyQt5/PyQt5_gpl-5.12.tar.gz
sudo tar xzf PyQt5_gpl-5.12.tar.gz
cd PyQt5_gpl-5.12
python3.6 configure.py

然后我收到以下错误

Error: Use the --qmake argument to explicitly specify a working Qt qmake.

我认为我的方法正确,但我不了解qmake是什么或它是什么 手段。

编辑10.03.2019:
我可以解决最后一条错误消息。我安装了

sudo apt-get install qt5-default

然后,我执行了与上述相同的步骤。现在我得到了错误

fatal error: sip.h: File or directory not found 
#include <sip.h>

PyQt5 config.py位于:/usr/src/PyQt5_gpl-5.12
SIP sip.h位于:/usr/src/sip-4.19.14

有人知道吗?谢谢大家。

6 个答案:

答案 0 :(得分:1)

好像他们搬了些东西。就获得并编译它们而言,这似乎是可行的。构建需要很长时间。

有关的设计师,请查看:

QtDesigner for Raspberry Pi

sudo apt-get update
sudo apt-get install qt5-default
sudo apt-get install sip-dev

cd /usr/src
sudo wget https://www.riverbankcomputing.com/static/Downloads/sip/4.19.23/sip-4.19.23.tar.gz
sudo tar xzf sip-4.19.23.tar.gz
cd sip-4.19.23
sudo python3 configure.py --sip-module PyQt5.sip
sudo make
sudo make install

cd /usr/src
sudo wget https://www.riverbankcomputing.com/static/Downloads/PyQt5/5.13.2/PyQt5-5.13.2.tar.gz
sudo tar xzf PyQt5-5.13.2.tar.gz
cd PyQt5-5.13.2
sudo python3  configure.py
sudo make
sudo make install

答案 1 :(得分:0)

今天我找到了解决方案。以下步骤对我有用,没有任何错误。整个过程耗时近两个小时。

sudo apt-get update
sudo apt-get install qt5-default
sudo apt-get install sip-dev

cd /usr/src
sudo wget https://www.riverbankcomputing.com/static/Downloads/sip/sip-4.19.14.tar.gz
sudo tar xzf sip-4.19.14.tar.gz
cd sip-4.19.14
sudo python3.6 configure.py --sip-module PyQt5.sip
sudo make
sudo make install

cd /usr/src
sudo wget https://www.riverbankcomputing.com/static/Downloads/PyQt5/PyQt5_gpl-5.12.tar.gz
sudo tar xzf PyQt5_gpl-5.12.tar.gz
cd PyQt5_gpl-5.12
sudo python3.6 configure.py
sudo make
sudo make install

答案 2 :(得分:0)

在我的情况下,它有助于将点号从版本18更新到最新的情况(在我的情况下为20.2(["tags","test","baby","example"]),然后执行python -m pip install --upgrade pip

答案 3 :(得分:0)

接受的答案中使用的说明对我不起作用。我认为这仅仅是因为它们已经过时了。我想发布确实对我有用的命令列表。截至 2020 年 12 月 20 日,我正在使用最新版本的 Raspbian 运行 Pi 400。我使用了默认的 python3 而不是 python3.6

这是对我有用的修改后的命令列表:

sudo apt-get install qt5-default
sudo apt-get install sip-dev

cd /usr/src
sudo wget https://www.riverbankcomputing.com/static/Downloads/sip/sip-5.5.1.dev2011271026.tar.gz
sudo tar xzf sip-5.5.1.dev2011271026.tar.gz
cd sip-5.5.1.dev2011271026
sudo python3 setup.py build
sudo python3 setup.py install

sudo wget https://files.pythonhosted.org/packages/28/6c/640e3f5c734c296a7193079a86842a789edb7988dca39eab44579088a1d1/PyQt5-5.15.2.tar.gz
sudo tar xzf PyQt5-5.15.2.tar.gz
cd PyQt5-5.15.2
sudo python3 configure.py
sudo make
sudo make install

答案 4 :(得分:0)

由于声誉而无法发表评论,但我会添加到 Christ Troutner 有用的更新答案中,以防用户收到 No module named 'PyQt5.sip' 错误,请在配置期间尝试 --sip-module PyQt5.sip,根据文档:

<块引用>

注意

在构建 PyQt5 v5.11 或更高版本时,您必须配置 SIP 以创建一个 使用类似于命令行的 sip 模块的私有副本 以下:

python configure.py --sip-module PyQt5.sip

如果您已经安装了 SIP 并且您只想构建和 安装模块的私有副本,然后添加 --no-tools 选项。

答案 5 :(得分:0)

接受的答案对我不起作用,下面是对我有用的代码。

export class UsersService {

  corsProxy = 'https://cors-anywhere.herokuapp.com/';

  constructor(
    private _http: HttpClient,
  ) { }

  _getAllUsers(): Observable<User> {
    return this._http.get<User>(`${this.corsProxy}http:/api/usersSelect/select`);
  }

  _createUser(user: User): Observable<User> {
    return this._http.post<User>(`${this.corsProxy}http://api/usersInsert/update`, user);
  }

  _deleteUser(id: number) {
    return this._http.delete(`${this.corsProxy}http://api/usersDelete/delete?id=${id}`);
  }

  _editUser(id: number, user: User) {
    console.log('User in SERVICE: ', user)
    return this._http.put<User>(`${this.corsProxy}http:/api/usersUpdate/Update?id=${id}`, user);
  }
}

这段代码不仅安装了Qtcreator,还安装了Qt5 Assistant、Qt5 Designer和Qt5 Linguist