Il contient un appel à une bibliothèque (from pytapo import Tapo :
# !/usr/bin/env python3
from pytapo import Tapo
user="xxxxx"
password="xxxxxxxxxxxxx"
host="192.168.1.xx"
tapo2=Tapo(host, user, password)
res=tapo2.moveMotor(-10,0)
Mais lorsque je le lance via le « tester » à droite de la commande,
J’ai ce message qui montre qu’il n’a pas trouvé la bibliothèque :
Le script python fonctionne lorsque je le lance via puTTy en tant qu’utilisateur pi sur le pi qui héberge jeedom :
via sudo python3 /var/www/html/plugins/script/data/testPython.py
Le sudo n’est nécessaire que parce-que pi n’a pas les droit en lecture sur ce fichier qui se trouve « chez jeedom ». Le même fichier python mis « chez pi » se lance sans problème sans le sudo.
Bref, comment, dans un script python lancé via le plugin script, faire en sorte qu’il ait accès à une certaine bibliothèque ?
Quelques infos supplémentaires :
Installation classique de jeedom sur un pi4. Tout est mis à jour et donc dernière version de jeedom et du plugin.
L’installation de la bibliothèque en question a été faite par un
Par défaut, en tout cas jusqu’à buster inclu, les script python sont exécuté avec python2 et pas python3 (même avec l’en-tête dans le script).
Le plug-in se base sur l’extension du fichier qui est donc .py en miniscule.
Voilà pourquoi votre script ne tourne pas et pourquoi vos libs ne sont pas trouvées.
Mettez .PY en majuscule et cela devrait fonctionner.
Pour info, sujet plusieurs fois posé et résolu sur community
Effectivement, merci @Mips cela a résolu une partie du problème.
Mais du coup, j’ai eu ce message :
Je pense qu’il ne lançait toujours pas le bon python car si sous putty si je faisais sudo /var/www/html/plugins/script/data/testPython.PY
J’avais le même message (mon fichier avait bien été mis en exécutable via un chmod).
Alors que, toujours sous putty, si je faisais pareil mais en plaçant un python3 devant : sudo python3 /var/www/html/plugins/script/data/testPython.PY
Ca marchait.
Du coup, j’ai créé un fichier batch (/var/www/html/plugins/script/data/shlancepython.sh) qui contenait python3 /var/www/html/plugins/script/data/testPython.PY