以root身份运行paho mqtt时发生导入错误(sudo python3 filename.py)

时间:2019-11-22 09:39:42

标签: python-3.x mqtt root sudo paho

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

现在,我用Python编写了(我的第一个脚本),以通过paho mqtt将传感器数据(博世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特权启动。所以我不明白为什么在运行“ sudo”时不再知道paho-mqtt ...

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

1 个答案:

答案 0 :(得分:0)

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

要解决此问题,您可以:

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