Ошибка импорта при запуске paho mqtt от имени пользователя root (sudo python3 filename.py)

Я собираюсь настроить Raspberry Pi 3+ Model A в качестве клиента для openHAB2. Здесь у меня подключен датчик на Pi и WS2812b (псевдоним Neopixel).

Теперь я написал (мой первый скрипт) на Python для публикации данных датчика (Bosch BMP280) через paho mqtt брокеру. Это работает по желанию, когда я запускаю файл Python с "python3 filename.py"...

Если я хочу запустить тот же файл с "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"...

У кого-нибудь есть решение для этого? Большое спасибо!


person ben5en    schedule 22.11.2019    source источник


Ответы (1)


Когда вы запускаете свой скрипт с помощью sudo python3 filename.py, он использует среду Python, отличную от той, которую вы использовали для установки Paho.

Чтобы исправить это, вы можете:

  • Добавьте Defaults env_keep += "PYTHONPATH" к своему /etc/sudoers
  • Запустите свой скрипт, используя sudo /path/to/python pythonscript.py
person sansa    schedule 22.11.2019
comment
Привет. Спасибо за этот быстрый ответ. Я все еще новичок в Pi и Python... Я видел, что и в /home/pi/.local/lib, и в /usr/lib существует папка python3.7. Пахо находится под первым. Вы имеете в виду это с двумя разными средами Python? К сожалению, я не могу правильно интерпретировать /path/to/python. Не могли бы вы сформулировать это поточнее? То, что я сделал до сих пор, было установлено с помощью sudo pip3 install paho-mqtt. Paho я нахожу сейчас по адресу: /home/pi/.local/lib/Python3.7/site-packages - person ben5en; 22.11.2019
comment
Привет, извините за поздний ответ. Просто введите which python3 в своем терминале, и вы получите нужный путь :) - person sansa; 22.11.2019
comment
@ben5en Нет проблем :) - person sansa; 27.11.2019