【问题标题】:Python ImportError for systemd service用于 systemd 服务的 Python ImportError
【发布时间】:2020-04-23 20:31:17
【问题描述】:

我正在尝试通过 systemd 服务在 raspby 上启动 python 脚本,但它找不到通过 pip3 安装的任何模块并给出错误:

raspberrypi python3[1017]: ModuleNotFoundError: No module named 'paho'

通过 SSH 终端运行相同的脚本可以正常工作。根据我的研究,它可能与 PYTHONPATH 有关,尽管我无法在 .bashrc 中找到它

找不到的模块安装在这里:

./.local/lib/python3.7/site-packages (1.5.0)

这是 /etc/systemd/user/mytest.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

如何让服务知道模块的位置?

亲切的问候

【问题讨论】:

  • 您可以运行命令 which python3 来验证 python 路径是否与您放入服务文件的路径匹配。
  • running "python3 /home/pi/MyProject/my_script.py" 成功执行脚本。但是当脚本通过服务启动时,它会失败。
  • 如果您使用“python3”而不是在服务中写入“/usr/bin/python3”,它仍然会失败吗?
  • 您是否安装了pip3 install --user 的模块?如果是,请使用sudo pip3 install 安装。

标签: python python-import systemd


【解决方案1】:

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

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

[Service]
User=pi

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 2012-10-15
    • 2021-04-10
    相关资源
    最近更新 更多