网上的教程都是在server状态下的开发教程。这里尝试了使用Pyside(PyQT)作为案例来打包树莓派的应用。这里使用Mac作为远程的输入操作,通过远程开发功能在Mac上开发树莓派应用。
首先,确保树莓派与Mac在同一网络下,并且树莓派启用了SSH。然后,使用VS Code的远程开发扩展(Remote - SSH)来连接树莓派。在VS Code中远程操作树莓派上编辑、运行代码,而不需要在树莓派上手动操作。
1. 配置树莓派的远程开发环境
首先,确保树莓派已经启用 SSH和VNC,方便远程调试
1.1 启用SSH
在树莓派上启用SSH服务:
- 如果没有显示器连接树莓派,可以通过在SD卡的
boot
分区中创建一个名为ssh
的空文件来启用SSH。 - 连接树莓派到网络(通过Wi-Fi或以太网),并使用SSH连接到树莓派:
ssh pi@<树莓派的IP地址>
1.2 配置VS Code远程开发
在Mac上安装VS Code,并安装Remote - SSH扩展:
- 打开VS Code,前往“扩展”面板(左侧的四个方块图标),搜索并安装 Remote - SSH 扩展。
- 在VS Code的命令面板中输入
Remote-SSH: Connect to Host...
,然后输入树莓派的IP地址(例如:pi@192.168.1.100
)。 - VS Code会通过SSH连接到树莓派,并在远程树莓派上打开一个新的开发环境。可以像在本地开发一样直接编辑和运行代码。
2. 开发树莓派应用
在树莓派上开发应用程序时,可以使用任何支持的框架和工具(例如,PySide6、Tkinter、Flask等)。确保在树莓派上安装了相关的依赖项。
-
安装PySide6:
sudo apt update sudo apt install python3-pip pip3 install PySide6
-
使用VS Code远程开发时,可以直接在远程的树莓派环境中进行开发。这样,可以方便地在树莓派上执行、调试和测试应用。
3. 打包应用程序为树莓派安装包
要将应用程序打包成树莓派上可以安装的程序包,推荐使用以下方法之一:
3.1 打包为 .deb
包
.deb
是Debian系列(包括Raspberry Pi OS)中常见的包格式。可以使用fpm
(Effing Package Management)工具来生成.deb
包。
-
安装fpm:
sudo apt install ruby ruby-dev build-essential sudo gem install --no-ri --no-rdoc fpm
-
创建
.deb
包: 假设应用程序文件夹/path/to/your/app
,可以使用以下命令将其打包为.deb
文件:fpm -s dir -t deb -n your-app-name -v 1.0 /path/to/your/app=/usr/local/bin
-
安装
.deb
包: 使用以下命令在树莓派上安装生成的.deb
包:sudo dpkg -i your-app-name-1.0.deb
3.2 使用 PyInstaller 打包 Python 应用
如果是用Python开发的桌面应用程序,可以使用 PyInstaller 来打包应用程序为可执行文件。
-
安装 PyInstaller:
pip3 install pyinstaller
-
打包 Python 应用: 假设主文件是
main.py
,可以使用以下命令将其打包为单个可执行文件:pyinstaller --onefile main.py
查找输出的可执行文件: 打包后,PyInstaller会在
dist/
目录下生成可执行文件。可以将它复制到树莓派上并运行: -
./dist/main
3.3 使用 CMake 和 Qt Creator(适用于C++应用)
如果使用C++和Qt框架开发应用程序,可以使用 Qt Creator 和 CMake 打包的应用程序:
-
在树莓派上安装Qt:
sudo apt install qt5-qmake qtbase5-dev
使用CMake和Qt Creator设置项目并生成可执行文件。
4. 部署到树莓派
打包好应用程序,通常有两种方式将其部署到树莓派上:
-
通过SSH传输文件: 使用
scp
(secure copy)将生成的包或可执行文件传输到树莓派:scp your-app-name-1.0.deb pi@<树莓派IP>:/home/pi/
-
直接通过USB或SD卡复制文件: 将生成的包或可执行文件复制到SD卡或USB驱动器,然后将其插入树莓派,进行安装或运行。
总结
- 使用VS Code的Remote - SSH扩展进行远程开发,可以在Mac上编辑并直接运行树莓派上的代码。
- 可以使用PyInstaller、fpm或Qt Creator来打包应用程序。
- 打包后,可以通过SCP或USB直接部署到树莓派上运行。