Je souhaite ajouter des actions sur ma camera TpLink avec des scripts python.
En ssh, lorsque je lance le fichier ( python3 moveRight.py) il fonctionne bien.
Mais, depuis le plugin script il me lève une erreur de retour, je ne comprend pas
Voici le retour Erreur sur python /var/www/html/plugins/script/data/moveRight.py 2>&1 valeur retournée : 1. Détails : Traceback (most recent call last): File "/var/www/html/plugins/script/data/moveRight.py", line 3, in from pytapo import Tapo File "/usr/local/lib/python2.7/dist-packages/pytapo/__init__.py", line 12, in from .media_stream.session import HttpMediaSession File "/usr/local/lib/python2.7/dist-packages/pytapo/media_stream/session.py", line 30 ip: str, ^ SyntaxError: invalid syntax
Merci de ton retour @tomdom,
Depuis j’ai changé le python utilisé par mon jeedom, je l’ai fait pointer sur python3
j’arrive à lancer mon script en ssh. : jeedom@jeedom:/var/www/html/plugins/script/data$ python moveRight.PY
mais depuis le plugin script, toujours une erreur de module :
Erreur sur /var/www/html/plugins/script/data/moveRight.PY 2>&1 valeur retournée : 1. Détails : Traceback (most recent call last): File « /var/www/html/plugins/script/data/moveRight.PY », line 4, in from pytapo import Tapo ModuleNotFoundError: No module named ‹ pytapo ›
c’est normal. Ce n’est pas le même utilisateur. Lorsque ton script s’exécute via jeedom, il s’exécute avec le l’utilisateur www-data.
Et si tu as installé tes dépendances python avec l’utilisateur que tu utilises pour ta connexion ssh, seul cet utilisateur a accès à ces modules python.
Une solution serait de faire (via ssh et en root) :
su -l -s /bin/bash -c 'pip3 install tes_dependances' www-data
Édit :
autre solution (sans doute plus propre), utiliser un virtual env python pour l’exécution de ton script
C’est ça le problème. Chez moi /var/www appartient à www-data:root et non root:root
C’est quoi ton installation, une box jeedom, une installation à partir d’une image jeedom, une installation debian puis installation jeedom en ligne de commande, autre … ?