运行 paho mqtt 作为 root 时导入错误(sudo python3 filename.py)

Import Error when running paho mqtt as root (sudo python3 filename.py)

我即将设置一个 Raspberry Pi 3+ 模型 A 作为 openHAB2 的客户端。在这里,我在 Pi 上连接了一个传感器 WS2812b(别名 Neopixel)。

现在我在 Python 中编写了(我的第一个脚本)以通过 paho mqtt 将传感器数据 (Bosch BMP280) 发布到代理。 当我使用 "python3 filename.py" 启动 Python 文件时,这会按预期工作...

如果我想用 "sudo python3 filename.py" 启动 同一个文件 ,则会出现以下错误消息:

 Traceback (most recent call last):
   File "mqtt_client.py", line 15, in <module>
     import paho.mqtt.client as mqtt
ModuleNotFoundError: No module named 'paho'

不过,我想扩展脚本以使用WS2812b。要控制 WS2812b,脚本必须以 root 权限 启动。所以我不明白为什么 paho-mqtt 在 运行 "sudo" ...

时不再为人所知

有人对此有解决方案吗?非常感谢!

当您 运行 您的脚本使用 sudo python3 filename.py 时,它使用的 python 环境不同于您用于安装 Paho 的环境。

要解决此问题,您可以:

  • Defaults env_keep += "PYTHONPATH" 添加到您的 /etc/sudoers
  • 运行 您的脚本使用 sudo /path/to/python pythonscript.py