【问题标题】:python module not found via systemd, but works manually通过systemd找不到python模块,但手动工作
【发布时间】:2019-01-10 10:18:36
【问题描述】:

我在 python 中有一个我使用的代码

import requests

如果我在命令行上运行代码,它就可以工作。

但是当我放入 systemd 时它不起作用。

在日志中我看到错误:

Aug  2 15:08:19 beaglebone python3[2140]:     import requests
Aug  2 15:08:19 beaglebone python3[2140]: ImportError: No module named 'requests'

我在 BeagleBone 中使用 debian

【问题讨论】:

  • 你确定他们使用的是同一个 Python 安装吗?
  • 我想是这样 在 systemd 我有: ** ExecStart=/usr/bin/python3.5 /home/debian/Sincronismo/EventHub.py **(没用)如果我放 * * /usr/bin/python3.5 /home/debian/EventHub.py ** 在控制台中,工作

标签: python-3.x request debian systemd


【解决方案1】:

您询问了常见问题解答Why do things behave differently under systemd? 的变体。

这可能与当前工作目录或提供 Python 库路径的环境变量有关。

import 行之前的python 代码顶部,立即转储当前工作目录和所有环境变量。查看 systemd 与手动使用下的差异。

我想你会在那里找到问题所在。例如,如果发现 requests 与您当前的工作目录相关,而 systemd 正在使用不同的目录。

有关更多可能性,请参阅上面链接的常见问题解答的答案。

【讨论】:

  • 抱歉,我刚开始使用 Linux。我理解并认为问题出在环境变量上,但我对常见问题解答感到困惑。如何“在导入行之前的 python 代码顶部,立即转储当前工作目录和所有环境变量”?
  • 查看finding the current directory in Pythonprinting the environment from Python 的答案。将这些任务作为脚本的第一行处理。
猜你喜欢
  • 1970-01-01
  • 2017-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-19
  • 2017-08-05
  • 1970-01-01
相关资源
最近更新 更多