我试图通过systemd服务在raspby上启动一个python脚本,但它找不到任何一个通过pip3安装的模块,并给出了错误。
raspberrypi python3[1017]: ModuleNotFoundError: No module named 'paho'
通过SSH终端运行相同的脚本可以正常运行。根据我的研究,这可能与PYTHONPATH有关,尽管我一直无法在.bashrc中找到它。
找不到的模块就安装在这里。
./.local/lib/python3.7/site-packages (1.5.0)
这是在 etcsystemdusermytest.service 中的服务文件,它启动脚本不成功。
[Unit]
Description=TestScript Service
After=network-online.target
[Service]
Type=idle
ExecStart=/usr/bin/python3 /home/pi/MyProject/my_script.py > /home/pi/my_script.log 2>&1
[Install]
WantedBy=network-online.target
我怎样才能让服务知道模块在哪里?
问好
这里有一个快速解决这个问题的方法。
通过在[服务]下的.service文件中指定一个用户,python脚本将找到所有安装的库。
[Service]
User=pi