系统服务的Python导入错误

问题描述 投票:0回答:1

我试图通过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

我怎样才能让服务知道模块在哪里?

问好

python python-import systemd
1个回答
0
投票

这里有一个快速解决这个问题的方法。

通过在[服务]下的.service文件中指定一个用户,python脚本将找到所有安装的库。

[Service]
User=pi
© www.soinside.com 2019 - 2024. All rights reserved.