对于上下文,我使用树莓派模型3B+。目前,我正试图在Pi的启动运行一个python脚本。该脚本使用face_recognition模块,在正常运行或通过终端运行时一切正常。但是当我尝试在pi启动时自动运行它时,我得到以下错误:
Traceback (most recent call last):
File "/home/pi/Desktop/code/please_work_2.py", line 6, in <module>
import face_recognition
ImportError: No module named face_recognition
我谷歌了一下,我认为这与没有正确设置服务文件中的环境有关。这是一个有点乱,因为现在,但我是新的工作与这些类型的文件,所以我正在努力找出如何得到它的工作。我现在的服务文件:
[Unit]
Description=Start Bling
[Service]
Environment=DISPLAY=:0
WorkingDirectory=/home/pi/facial_recognition
Environment=XAUTHORITY=/home/pi/.Xauthority
Environment="prog_path"=/home/pi/facial_recognition
ExecStart=/usr/bin/python /home/pi/facial_recognition/run_on_start.py
Restart=always
RestartSec=10s
KillMode=process
TimeoutSec=infinity
[Install]
WantedBy=graphical.target
程序不一定需要在桌面自动登录中运行,所以如果在控制台版本中有可能的修复,那也很好。我目前就是这样设置的,这样检查程序是否按预期工作就更容易了。
编辑:我也试过使用crontab,但是重启后什么都没发生。不能有也不能没有'&'在结尾。到目前为止,如下所示,当我添加
时User = pi
程序确实启动了,但我正在努力使它每隔10秒启动一次。删除该位没有帮助,因为它将完全停止启动。
你可以试试这个,把下面的User=pi
添加到[Service]
下,看看它是否有效。
我认为你做的方式是,你试图以另一个用户或sudo用户启动,你的东西只安装在你当前的pi用户路径下,所以尝试以用户pi启动脚本。
你的服务文件应该是这样的。
[Unit]
Description=Start Bling
[Service]
User=pi
Environment=DISPLAY=:0
WorkingDirectory=/home/pi/facial_recognition
Environment=XAUTHORITY=/home/pi/.Xauthority
Environment="prog_path"=/home/pi/facial_recognition
ExecStart=/usr/bin/python /home/pi/facial_recognition/run_on_start.py
Restart=always
RestartSec=10s
KillMode=process
TimeoutSec=infinity
[Install]
WantedBy=graphical.target