基于我个人习惯.
即使在树莓派上面,也习惯整一个可视化页面出来
环境说明
- 硬件 : 任意树莓派~我是 3B+ 和 4
- OS : Raspberry Pi OS
- 开发语言 : Python
- 可视化UI开发 : PyQt5
开发流程说明
- 分别在开发电脑和树莓派上面先搭建好所有环境,包括
开发语言环境:Python
核心组件:PyQt5、pyqt-tools、Designer. - 使用Designer画页面,保存生成 .ui文件
- 使用pyuic命令,将.ui文件 转换成 .py文件
- 基于.py文件做后续开发(我个人使用的IDE是Pycharm,看个人习惯,不使用这个也行)
- 远程调试 或 U盘将开发好的代码弄到树莓派OS上面运行
(我个人更习惯Window系统进行开发,基本完成后在树莓派上面调试,因为上面通过GPIO针脚接了对应的传感器) - 这一步看个人习惯:
- 可通过pyinstaller构建出 可执行文件,直接运行.
- 可通过pyinstaller构建出 可执行文件,再创建一个.desktop 运行.
- 可直接使用命令直接cd到对应路径,直接运行python文件
- 可弄一个sh文件运行
- 可将项目打包成 deb安装包运行.
很是灵活,咋样都行.看个人喜好和项目需求~
注意事项说明
- 树莓派OS自带python2.7和python3.7版本.我统一使用python3.7, 也就是通过pip3安装组件,树莓派IDE默认使用python3.7,如果使用pip安装,会出现ModuleNotFoundError.
- PC端不要使用最新本版的Python,会存在PyQt5版本下载问题,详情见:PyQt5 和 pyqt-tools下载问题
- 如果下载的pyqt-tools里面没有designer,请自行使用pip3 install命令单独下载组件,在Python\Lib\site-packages\QtDesigner找到对应的应用.
- 使用Desinger画UI,注意使用栅格布局
在绘制好的组件空白处,点击栅格布局,会自动添加一层centralwidget,此时会对布局进行对齐调整,右下角提供了缩放功能,此时UI会给予窗体大小进行布局自适应调整. - pyuic命令转换如果出错了,请卸载这个组件,再重新下载!!!
- pyuic命令将ui文件转换为pc文件,具体流程自行百度,推荐将这些工具绑定在Window IDE内,直接在IDE右键操作.
- 相关代码调试完成后,需要进行打包操作,将代码转换为可执行文件.
如果需要运行在Window上面,直接在Window上面执行pyinstaller即可最终输出.exe
注意,我们的目标是要最终运行在 树莓派OS上面的,所以需要在树莓派OS上面执行pyinstaller命令进行构建.(我出现FillNotFoundError: ‘/lib32’,具体解决详见 下面的踩坑记录说明) - 可执行文件弄好了,现在需要整一个 快捷方式.
当然直接拿pyinstaller的输出文件也行,但是连个icon都没得,丑的很~
还是自己整一个.desktop文件,具体方式参考 踩坑记录,里面有说明.
打包相关踩坑记录
所有的打包相关问题,图标,桌面快捷方式等都在里面.
吐槽
真的是每一个步骤都是踩坑过来的,阿西吧.
- Python版本的坑 (千万不要使用最新版本)
- Windows下载pyqt-tools下载的坑 (因为Python最新版本,导致这个下载一直报错)
- pyuic转.ui文件的坑 (转不了,卸载重装对应依赖)
- 树莓派OS 软件啥格式啊 (我特么搜索了好久,才搞清楚要打 deb的安装包)
- deb打包遇到的qmake问题.
- 树莓派OS重新下载PyQt5遇到的问题
- 创建.desktop文件, Exec配置信息问题
最终弄完,发现我直接拿pyinstaller输出的可执行文件直接就能用了,并不需要deb打包.
我这个deb打包出来的文件有啥用?
好像弄了一个寂寞?
End~~~
第一次写Python,第一次用Python搞可视化页面,第一次整Raspberry Pi OS.
太不容易了.
赶紧记下来~~~
一回生,二回熟吧.