mchobby / la-maison-pythonic

Projet didactique du livre "Python, Raspberry-Pi et Flask" avec ESP8266 sous MicroPython
https://shop.mchobby.be/fr/doc/1423-python-raspberry-pi-et-flask-capturez-des-donnees-telemetriques-et-realisez-des-tableaux-de-board-web-3232100014237.html
19 stars 13 forks source link

Démarrage de push-to-db avec systemd provoque "ImportError: No module named paho.mqtt.client" #2

Closed mchobby closed 5 years ago

mchobby commented 5 years ago

Fonctionne parfaitement en ligne de commande avec /usr/bin/python /home/pi/la-maison-pythonic/python/push-to-db/push-to-db.py mais le démarrage dans systemd montre l'erreur suivante

pi@pythonic:~ $ sudo systemctl status push-to-db.service
● push-to-db.service - MQTT database storage service for la-maison-pythonic project
   Loaded: loaded (/lib/systemd/system/push-to-db.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Thu 2018-11-22 10:06:17 CET; 1s ago
  Process: 772 ExecStart=/usr/bin/python /home/pi/la-maison-pythonic/python/push-to-db/push-to-db.py (code=exited, status=1/FAILURE)
 Main PID: 772 (code=exited, status=1/FAILURE)

nov 22 10:06:17 pythonic systemd[1]: Started MQTT database storage service for la-maison-pythonic project.
nov 22 10:06:17 pythonic python[772]: Traceback (most recent call last):
nov 22 10:06:17 pythonic python[772]:   File "/home/pi/la-maison-pythonic/python/push-to-db/push-to-db.py", line 12, in <module>
nov 22 10:06:17 pythonic python[772]:     import paho.mqtt.client as mqtt_client
nov 22 10:06:17 pythonic python[772]: ImportError: No module named paho.mqtt.client
nov 22 10:06:17 pythonic systemd[1]: push-to-db.service: Main process exited, code=exited, status=1/FAILURE
nov 22 10:06:17 pythonic systemd[1]: push-to-db.service: Unit entered failed state.
nov 22 10:06:17 pythonic systemd[1]: push-to-db.service: Failed with result 'exit-code'.
mchobby commented 5 years ago

En fait /usr/bin/python /home/pi/la-maison-pythonic/python/push-to-db/push-to-db.py fonctionne mais sudo /usr/bin/python /home/pi/la-maison-pythonic/python/push-to-db/push-to-db.py provoque l'erreur "ImportError: No module named paho.mqtt.client".

C'est parce que le module paho MQTT ne dispose pas du BitMask adéquat pour être lu par root (comme c'est la cas sous systemd).

Il faut réinstaller paho-mqttavec sudo

pip uninstall paho-mqtt
sudo pip install paho-mqtt