树莓派4开机自动运行Python脚本问题求助
解决树莓派4开机自动运行Python脚本的问题
先修复基础错误
1. Python代码语法错误
你的main.py中while (1)后面缺少冒号,这会直接导致脚本运行失败,修正后:
import serial ser = serial.Serial("/dev/ttyAMA0", 115200) l = 1 while (1): print(l) ser.write(str(l).encode("utf-8")) l += 1
2. Shell脚本的conda激活错误
你当前的conda activate命令写法错误,正确的两种方式:
方式一:直接使用conda环境的Python绝对路径(推荐,避免环境变量问题)
修改my_script.sh:
#!/bin/bash # 替换为你conda环境中python的实际路径 /path/to/environment/bin/python /home/path/to/main.py
方式二:正确初始化conda并激活环境
如果必须用conda activate,需要先加载conda的初始化脚本:
#!/bin/bash # 替换为你conda安装路径下的profile.d/conda.sh source /home/pi/miniconda3/etc/profile.d/conda.sh # 替换为你的conda环境名称,不是activate脚本路径 conda activate your_env_name python /home/path/to/main.py
给Shell脚本添加可执行权限:
chmod +x /home/path/to/my_script.sh
优化开机启动配置
方法一:优化crontab配置
- 编辑crontab:
crontab -e
- 修改
@reboot命令,添加日志输出方便排查:
@reboot /bin/bash /home/path/to/my_script.sh >> /home/path/to/startup.log 2>&1
- 重启后查看日志:
cat /home/path/to/startup.log
方法二:优化rc.local配置
- 编辑rc.local:
sudo nano /etc/rc.local
- 在
exit 0之前添加命令(确保加&后台运行,同时添加日志):
/home/path/to/my_script.sh >> /home/path/to/startup.log 2>&1 &
- 确保rc.local有可执行权限:
sudo chmod +x /etc/rc.local
解决串口相关问题
启用树莓派串口:
运行raspi-config,进入Interface Options->Serial Port,选择关闭Serial Console,开启Serial Port,保存后重启。给用户添加串口访问权限:
sudo usermod -aG dialout pi # 替换pi为你的用户名
- 可选:添加启动延迟
如果开机时串口未就绪,可在Shell脚本开头添加延迟:
sleep 10 # 延迟10秒,等待系统初始化串口
验证脚本运行
重启树莓派后,用以下命令查看脚本是否在运行:
ps aux | grep main.py
或查看日志文件startup.log排查错误。
内容的提问来源于stack exchange,提问作者Nazar Pankov
相关产品推荐
相关产品推荐

