python - Systemd 服务无法识别 python 库
问题描述
当我的 Raspberry Pi 启动时,我正在尝试运行 python discord 机器人。为此,我使用了 systemd 服务:
[Unit]
Description=Testing
[Service]
Type=idle
WorkingDirectory=/home/pi
ExecStart=/usr/bin/python3 /home/pi/discord/bug.py
[Install]
WantedBy=multi-user.target
我之前使用更简单的 python 程序进行了几次测试,一切正常。尝试运行不和谐机器人时,它会在导入语句中引发错误。为了测试我运行:
sudo systemctl start bugstart
sudo systemctl status bugstart
状态的输出如下:
bugstart.service - Testing
Loaded: loaded (/lib/systemd/system/bugstart.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sun 2018-08-12 02:08:47 UTC; 1s ago
Process: 1039 ExecStart=/usr/bin/python3 /home/pi/discord/bug.py (code=exited, status=1/FAILURE)
Main PID: 1039 (code=exited, status=1/FAILURE)
Aug 12 02:08:46 raspberrypi systemd[1]: Started Testing.
Aug 12 02:08:47 raspberrypi python3[1039]: Traceback (most recent call last):
Aug 12 02:08:47 raspberrypi python3[1039]: File "/home/pi/discord/bug.py", line 1, in <module>
Aug 12 02:08:47 raspberrypi python3[1039]: import discord
Aug 12 02:08:47 raspberrypi python3[1039]: ImportError: No module named 'discord'
Aug 12 02:08:47 raspberrypi systemd[1]: bugstart.service: Main process exited, code=exited, status=1/FAILURE
Aug 12 02:08:47 raspberrypi systemd[1]: bugstart.service: Unit entered failed state.
Aug 12 02:08:47 raspberrypi systemd[1]: bugstart.service: Failed with result 'exit-code'.
我发现这些命令是以 root 身份运行的,所以我认为可能是库 hand 没有安装在 root 上,但是我尝试在命令行 shell 中导入不和谐,它工作正常。
解决方案
推荐阅读
- java - 使用 @Embeddable 类的 save() 方法时出现“提供了错误类型的 id”错误
- r - 有没有一种简单的方法可以在 rmarkdown/bookdown 中使用符号作为脚注?
- python - 使用 yfinance 获取错误的交易量
- c++ - 空的 SDL2 窗口需要大量 (40%+) GPU 渲染?
- sql-server - XML 文件 SSIS 到 SQL Server = 从列中的十进制值中删除尾随 0
- kotlin - 我只需要在 Scaffold 中对标题使用记住吗?
- python - “方法”对象不是可迭代的数据框python
- ios - 在不同的 IOS 版本上运行 React Native
- javascript - 使用 Javascript 禁用 iPad 和 iPhone 键盘上的建议栏
- python - 一行中的零除法导致所有其他行中的错误 Pandas