本文参考:http://shumeipai.nxez.com/2017/05/03/raspberry-pi-install-python-pyqt-eric-tutorial.html
楼主最近在完成利用树莓派连接温度采集箱读取数据并显示的相关工作。因此,需要搭建相关的软件显示界面。最终选择利用Python+PyQt5这种最容易上手的方式来搭建。查阅了一些资料,发现树莓派上安装Eric的教程最详细,因此选择Eric6作为软件界面开发的IDE。
上面链接中基于python3.5安装eric6。而树莓派3B 自带python3.4,因此,楼主想尝试直接基于python3.4在树莓派上安装eric6。
1.安装SIP(版本4.16.4)
首先运行
apt-get install python3-dev libpython3-dev
https://sourceforge.net/projects/pyqt/files/sip/
进入上述网站下载相应版本的sip包(注意只能安装此版本,为后面安装pyqt5.svg做准备)。解压后进入文件目录运行
sudo python3 ./configure.py
sudo make
sudo make install
安装成功后,运行查看sip版本
sip -V
正常输出应该为4.16.4
然后运行
python3
>>>import sip
>>>print(sip.SIP_VERSION_STR)
4.16.4
正常二者都应该显示4.16.4,否则需要运行以下命令,重新安装。
sudo rm -rf /usr/lib/python3/dist-packages/sip*
2.安装PyQt5
首先需要安装 Qtcreator ,安装成功后主菜单->编程下出现QT Creator程序图标。
sudo apt-get install qt5-default qtcreator
然后安装PyQt5
sudo apt-get install python3-pyqt5-dbg
最后安装
PyQt5.svg
apt-get install libqt5svg5 python3-pyqt5.qtsvg qtsvg5-doc
在此过程中,会自动下载zip1.16.4的相关依赖,如果在上一步安装其他版本sip包,会造成运行以下命令时
python3
>>>import sip
>>>print(sip.SIP_VERSION_STR)
sip -V
二者的输出结果不一致,导致在安装eric6时报如下错误:
the sip module implements API v11.0 but the PyQt5.QtCore module requires API v11.1
安装成功后可运行
python3
>>>import PyQt5
>>>import PyQt5.svg
不报错即为安装成功。
3.安裝QScintilla2(版本2.9)
https://riverbankcomputing.com/software/qscintilla
进入网站下载对应版本(只能下载此版本,如果版本过高将与sip版本不兼容)。解压进入文件夹
1)安装本体运行
cd Qt4Qt5
qmake qscintilla.pro
然后修改生成的MAKEFILE 文件,在CFLAGS 和 CXXFLAGS 后面 加上 -std=c++11 否則make会提示出错。
CFLAGS = -pipe -O2 -fvisibility=hidden -D_REENTRANT -w -fPIC $(DEFINES) -std=c++11
CXXFLAGS = -pipe -O2 -fvisibility=hidden -fvisibility-inlines-hidden -D_REENTRANT -w -fPIC $(DEFINES) -std=c++11
然后进行编译
make
make install
2)安裝designer
cd designer-Qt4Qt5
qmake designer.pro
但此时运行出错
Raspberry pi |qmake designer.pro
Project ERROR: Unknown module(s) in QT: designer
解决办法为
sudo apt-get install libqt5designer5
sudo apt-get install qttools5-dev
然后再运行
qmake designer.pro
make
make install
安装成功
3)安装Pythonbingdings
cd Python
python3 configure.py --pyqt=PyQt5
但运行到此处一直报错
Error:Unable to create the C++ code.
https://www.linuxidc.com/Linux/2016-01/127677.htm中给出解释为“安装顺序错误——先安装的PyQt5,而后安装的QScintilla Qt4Qt5”,尝试重新改变顺序安装,但没有解决问题。
尝试跳过此步,试图直接安装eric6时,发现报错为:
Sorry, please install Qscintilla.Error: No module named 'PyQt5.Qsci'
因此,尝试安装PyQt5.Qsci模块,运行
sudo apt-get install python3-pyqt5.Qsci
竟然误打误撞成功了。。。
4.安装eric6
http://www.pudn.com/Download/item/id/3021730.html
下载eric6,解压之后进入文件夹,运行命令
sduo python3 ./install.py
运行过程中可能报错缺少PyQt5.QtSql模块,因此运行
sudo apt-get install python3-pyqt5.qtsql
解决此问题后,就顺利安装成功。
楼主对于树莓派和linux操作系统只是简单了解,只是所承担项目需要软件界面的开发,才完成相关内容。上述过程大概进行了两天,在遇到问题时,主要依靠直接百度或者谷歌报错信息解决的。与参考链接中的方法相比,节省了安装pyqt5时所进行编译的时间,只要按照上述顺序,应该可以安装成功。上述过程中还待有为解决的问题,也希望网友提供其他方法。