Bonjour,
mon premier post, que j’espère OK. Le contexte est un script qui fonctionnait par le passé via le plugin « script », d’où ce tag, mais je pressens que l’origine du problème est ailleurs. Dans le doute, je l’ai créé ici.
Depuis le passage à bookworm par réinstallation complète, l’installation de module python sans Virtual Environnement n’est plus possible.
pi@raspberry2b:~ $ cat /etc/*release
PRETTY_NAME="Raspbian GNU/Linux 12 (bookworm)"
Or je pilote une ampoule Yeelight via un module python « Yeelight ».
Je me suis donc renseigné et j’ai procédé à l’installation d’un virtual environnement « venvYeelight » à partir de mon utilisateur « pi » (dans répertoire /home/pi/scripts/):
pi@raspberry2b:~/scripts/venvYeelight/bin $ ls -l
total 36
-rw-r--r-- 1 pi pi 2014 Apr 20 23:54 activate
-rw-r--r-- 1 pi pi 940 Apr 20 23:54 activate.csh
-rw-r--r-- 1 pi pi 2216 Apr 20 23:54 activate.fish
-rw-r--r-- 1 pi pi 9033 Apr 20 23:54 Activate.ps1
-rwxr-xr-x 1 pi pi 246 Apr 20 23:54 pip
-rwxr-xr-x 1 pi pi 246 Apr 20 23:54 pip3
-rwxr-xr-x 1 pi pi 246 Apr 20 23:54 pip3.11
lrwxrwxrwx 1 pi pi 7 Apr 20 23:53 python -> python3
lrwxrwxrwx 1 pi pi 16 Apr 20 23:53 python3 -> /usr/bin/python3
lrwxrwxrwx 1 pi pi 7 Apr 20 23:53 python3.11 -> python3
Le script d’allumage et celui d’extinction se trouvent dans « /var/www/html/plugins/script/data » :
pi@raspberry2b:/var/www/html/plugins/script/data $ ls -l
total 16
-rwxrwxr-x 1 www-data www-data 96 Jan 8 23:01 allumer.py
-rwxrwxr-x 1 www-data www-data 66 Jan 8 23:01 allumer.sh
-rwxrwxr-x 1 www-data www-data 96 Jan 8 23:01 eteindre.py
-rwxrwxr-x 1 www-data www-data 127 Apr 21 18:40 eteindre.sh
où :
« eteindre.sh »
#!/bin/bash
source /home/pi/scripts/venvYeelight/bin/activate
python3 /var/www/html/plugins/script/data/eteindre.py
deactivate
et :
« eteindre.py »
#!/usr/bin/env python
from yeelight import Bulb
bulb = Bulb("10.1.1.2")
bulb.turn_off()
Le pilotage « manuel » (depuis un terminal du raspberry) est fonctionnel : je peux allumer et éteindre l’ampoule via ces scripts (via l’utilisateur « pi », si j’ai bien compris) :
pi@raspberry2b:~ $
pi@raspberry2b:~ $ cd /var/www/html/plugins/script/data/
pi@raspberry2b:/var/www/html/plugins/script/data $ ./allumer.sh
pi@raspberry2b:/var/www/html/plugins/script/data $ ./eteindre.sh
pi@raspberry2b:/var/www/html/plugins/script/data $
Le blocage apparaît lorsque je souhaite lancer ces scripts depuis le plugin « scripts » : rien ne se passe quand j’appuie sur le bouton « tester » des commandes.
Les logs du plugin affichent alors les erreurs suivantes :
[2026-04-23 16:36:16] ERROR Erreur exécution de la commande [obj-salon][script-actionner-ampoule-bash][light-salon-off] : Erreur sur sudo chmod +x /var/www/html/plugins/script/data/eteindre.sh 2>/dev/null;/var/www/html/plugins/script/data/eteindre.sh 2>&1 valeur retournée : 127. Détails : /var/www/html/plugins/script/data/eteindre.sh: line 2: /home/pi/scripts/venvYeelight/bin/activate: Permission denied
Traceback (most recent call last):
File "/var/www/html/plugins/script/data/eteindre.py", line 3, in <module>
from yeelight import Bulb
ModuleNotFoundError: No module named 'yeelight'
/var/www/html/plugins/script/data/eteindre.sh: line 4: deactivate: command not found
[2026-04-23 16:52:51] ERROR Erreur exécution de la commande [obj-salon][script-actionner-ampoule-bash][light-salon-on] : Erreur sur sudo chmod +x /var/www/html/plugins/script/data/allumer.sh 2>/dev/null;/var/www/html/plugins/script/data/allumer.sh 2>&1 valeur retournée : 127. Détails : /var/www/html/plugins/script/data/allumer.sh: line 2: /home/pi/scripts/venvYeelight/bin/activate: Permission denied
Traceback (most recent call last):
File "/var/www/html/plugins/script/data/allumer.py", line 3, in <module>
from yeelight import Bulb
ModuleNotFoundError: No module named 'yeelight'
/var/www/html/plugins/script/data/allumer.sh: line 4: deactivate: command not found
Mes réflexions/tests :
Le message d’erreur affiche un « Permission Denied » sur le fichier « activate » du venvYelight.
Ce fichier appartient à l’utilisateur « pi » et au groupe « pi ».
Or, j’ai cru comprendre que les scripts sont lancés avec l’utilisateur « www-data », donc j’ai d’abord essayé d’ajouter cet utilisateur au groupe « pi » (sudo usermod -aG pi www-data) : pas mieux/même erreur
J’ai également essayé un « chmod 777 activate » (retiré depuis) : pas mieux/même erreur
J’ai trouvé les sujets suivants sur la communauté, mais cela ne m’a pas débloqué :
https://community.jeedom.com/t/lancer-script-python-avec-venv-modules-non-trouves/20495
https://community.jeedom.com/t/question-generale-sur-les-droits-de-www-data-pb-script-python/55651
Conclusion : tout porte à croire à un bête problème de droits de l’utilisateur « www-data » sur le virtual environnement « venvYeelight » mais je ne parviens pas à mettre le doigt dessus.
L’un d’entre vous aurait-il une idée ?
Merci d’avance pour vos suggestions.
Note 1 - le module yeelight est bien installé dans le venvYeelight (et ça fonctionne via activation manuelle)
pi@raspberry2b:~ $
pi@raspberry2b:~ $ source /home/pi/scripts/venvYeelight/bin/activate
(venvYeelight) pi@raspberry2b:~ $ pip3 list
Package Version
---------- -------
ifaddr 0.2.0
pip 23.0.1
setuptools 66.1.1
yeelight 0.7.16
(venvYeelight) pi@raspberry2b:~ $
(venvYeelight) pi@raspberry2b:~ $ deactivate
pi@raspberry2b:~ $
Note 2 - la page santé du Jeedom :

