Raspbian开机自启Python脚本报找不到SSIM_PIL模块问题求助
树莓派开机桌面加载后自启Python脚本报模块不存在问题解决
根因说明
- 你在
.bashrc中写的启动命令带sudo前缀,执行时使用root用户身份,Python会加载root用户的第三方包路径。你安装的SSIM_PIL是存放在pi普通用户的包目录下,root环境无对应包,因此触发ModuleNotFoundError。 /etc/rc.local执行时机为系统启动早期,远早于桌面环境加载完成,且默认以root权限运行,既不满足你等待桌面加载完成后再执行脚本的需求,也同样存在用户环境不匹配导致的包找不到问题。.bashrc的触发逻辑是每次启动交互式Shell终端,并非桌面加载完成节点,本身就不适合用来配置桌面级自启任务。
正确配置步骤
使用树莓派默认LXDE桌面环境提供的用户级自启配置,执行时机正好为桌面加载完成后,且默认使用pi用户身份运行,完全匹配你的需求:
- 打开终端编辑自启配置文件:
nano /home/pi/.config/lxsession/LXDE-pi/autostart - 在文件末尾追加启动命令,不要加sudo前缀:
@/usr/bin/python3.7m /home/pi/Desktop/Program/NameOfTheProgram.py - 按
Ctrl+O确认保存,Ctrl+X退出编辑器,重启设备即可生效。
排查辅助配置
如果配置后仍未正常运行,可以给命令加日志重定向,方便定位问题:@/usr/bin/python3.7m /home/pi/Desktop/Program/NameOfTheProgram.py > /home/pi/self_start_log.log 2>&1
重启后直接查看/home/pi/self_start_log.log文件内容,就能获取脚本运行的报错信息。
如果你的脚本必须使用root权限运行,先切换到root用户安装对应依赖即可:
sudo su pip3 install SSIM_PIL
无特殊权限需求的话,不建议加sudo跑自定义Python脚本,避免出现环境不一致问题。
内容的提问来源于stack exchange,提问作者Dubious Shrub
相关产品推荐
相关产品推荐

