ARM64平台上安装PyQt5环境【包括error: Qt::ItemDataRole is not a class or namespace解决方案】

一.前言

在嵌入式ARM64开发平台上,直接用pip安装pyqt5,会出现各种各样的编译错误。根据其他博客以及参考资料。在ubuntu操作系统上直接

sudo apt-get install python3-pyqt5

即可使用。
但是由于python笔者也是编译安装的,环境中的python版本有多个。于是考虑到源码安装到对应的python版本中。

二.源码安装python

安装不同python版本:

wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
tar -xvf Python-3.7.9.tgz
cd Python-3.7.9
./configure --prefix=/usr/local && make -j8 && sudo make install
sudo ln -s /usr/local/bin/python3.7 /usr/bin/python37
sudo ln -s /usr/local/bin/pip3.7 /usr/bin/pip37
 pip37 install --upgrade pip  -i http://pypi.douban.com/simple  --trusted-host pypi.douban.com
 pip37 install --upgrade setuptools  -i http://pypi.douban.com/simple  --trusted-host pypi.douban.com

三.源码安装PyQt5以及SIP

3.1 开发环境

开发环境软件版本
开发板EAIDK610
操作系统Debian ubuntu16.04
Python3.7.9
PyQt55.15.2
SIP4.19.25
开发环境vscode remote ssh插件

PyQt5版本需与SIP版本对应。
SIP | 4.19.25下载

PyQt5 | 5.15.2下载

3.2 安装步骤

源码编译需要依赖qmake工具链,ubuntu环境直接

sudo apt-get install qt5-default

即可。
安装编译所需的软件包

sudo apt-get install cmake gcc g++
pip3 install --upgrade pip
pip3 install wheel setuptools

源码编译SIP包

tar zxvf sip-4.19.25.tar.gz
cd ./sip-4.19.25
sudo python37 configure.py --sip-module PyQt5.sip
 sudo make
 sudo make install

源码编译 PyQt5

tar zxvf PyQt5-5.15.2.tar.gz
 cd ./PyQt5-5.15.2
  sudo python37 configure.py

在编译过程中可能会出现

error: Qt::ItemDataRole is not a class or namespace

这是因为C++使用的编译方式不读需要在所有目录下的MakeFile中的 CXXFLAGS 后加入 -std=c++ 11选项。

解决错误后

sudo make -j4 
sudo make install

因为已经制定了刚才安装的python编译器进行configure,进行到这一步已经安装完成了。

四. 验证与测试

测试脚本

#测试PyQt5的功能
import sys
from PyQt5 import QtWidgets, QtCore

app = QtWidgets.QApplication(sys.argv)
widget = QtWidgets.QWidget()
widget.resize(360, 360)
widget.setWindowTitle("Hello, World")
widget.show()
sys.exit(app.exec_())
python37 test.py

在这里插入图片描述

参考文章

1.嵌入式ARM 64位平台源码编译安装PyQt5及其在虚拟环境中的调用配置
2. error: Qt::ItemDataRole is not a class or namespace解决方案

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪中奇侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值