×

树莓派 Linux

树莓派开机启动Python脚本

zhuzhuangtian zhuzhuangtian 发表于2023-08-14 23:47:50 浏览842 评论0

抢沙发发表评论

项目开发完成后通常需要让程序开机启动,在配置过程中踩了一些坑,记录一下配置过程。

基本原理是将启动Python的脚本语句添加到rc.local中,这个文件可以理解为开机自启动的脚本,默认以root用户运行,而平时开发通常用pi用户,使用pip安装的模块也都在pi用户的目录下,两者是独立的。类似于windows下为所有用户安装和仅为当前用户安装的选项。因此直接在rc.local中使用python xxx.py来运行会出现找不到模块的错误。针对该问题有以下几种解决方式:

  1. 使用sudo pip安装模块,即为root用户安装。

  2. 使用venv虚拟环境,在运行前激活相应环境,事实上这是最优雅的方式。

  3. 运行时使用sudo -u username的方式,指定用户运行python,如

sudo -u pi python3 /home/pi/wkdir/main.py #尽量使用绝对路径,python程序中同样需要注意相对路径问题

完整的配置步骤如下

  1. 编辑/etc/rc.local文件,在exit 0前添加使用指定用户运行Python的命令,可以把相关初始化命令写在一个startup.sh文件中统一执行。

  2. sudo systemctl daemon-reload 更新配置文件缓存

  3. sudo systemctl restart rc.local-service 重启自启动服务,观察是否生效

  4. 通过sudo systemctl status rc.local-service 观察服务运行状态,是否有错误信息

群贤毕至

访客