Si c'est du Python 3 il faut utiliser l'exécutable python3.
Parfois les variables d'environnement n'existent pas quand on utilise exec, donc il faut utiliser le chemin complet de l'exécutable python (ce sera un truc comme /usr/bin/python3).
Après le truc le plus évident c'est d'essayer la commande lancée par shell_exec dans les mêmes conditions (c'est à dire depuis l'utilisateur de ton serveur web) pour voir le message d'erreur.
Par exemple si ton serveur web tourne avec l'utilisateur www-data, tu peux lancer ta commande sous le même utilisateur avec sudo -u www-data python /chemin/vers/fichier.py
Et oui le fichier se lance pourtant correctement quand je l'active depuis le terminal, et j'ai essayé d'utiliser l'exécutable python 3, mais rien n'y fait...
Je connais pas trop PHP mais je suppose qu'il doit y avoir moyen de récupérer le résultat de la commande lancée par shell_exec, l'idéal serait de l'afficher directement sur la page web pour voir l'erreur.
Il faut passer un argument à exec pour récupérer l'output complet, la valeur de retour de la fonction c'est juste la dernière ligne de l'output de la commande.
Regarde la doc, je t'ai mis le lien.
EDIT : Et utilise le chemin absolu vers le fichier python.
- Edité par LoupSolitaire 29 novembre 2020 à 14:45:22
Du coup j'ai essayé avec une commande du type "ls -l " qui me donne effectivement le bon retours donc le problème n'est pas du côté du php, il me semble que j'ai trouvé l'erreur, j'executer le script avec la commande "sudo" car il me faut les droit nécessaires à l'accès des libs, or php à l'air de ne pas le prendre en compte car avec un petit script type " print("hello world"), le retour marche correctement avec la commande
Il me semble que mon script essaie d'accéder au chemin suivant /dev/mem
n'ayant pas la permission sans sudo je ne sais pas comment faire ...
C'est de la cuisine Linux que j'ignore mais qui pose des problèmes de sécurité qu'on résout en faisant communiquer le serveur Web sans privilèges avec un serveur local privilégié.
Après on peut éviter le problème si on peut récupérer l'information souhaitée sans accéder à /dev/mem...
Ce qui pourrait être le sujet d'une autre discussion ou vous présentez ce que fait le script
Comment récupérer ces infos sans privilèges est quelque chose qui est peut être documenté dans la bibliothèque rpi que vous utilisez....
Mais je ne vais pas chercher pour vous (de toutes façons, sans équipement on ne peut pas tester les solutions proposées).
ET s'il n'y a pas de solutions de ce côté là, c'est une question de privilèges et de sécurité: rien à voir avec la programmation Python (il y a un forum linux qui peut peut être aider).
mais j'ai tout de même essayé disons, et .... toujours rien il refuse de me l'ouvrir ...
Le message d'erreur est le même ou c'est un autre ?
Soit c'est le même message d'erreur et ça veut dire que l'autorisation d'accès n'a pas fonctionné, soit c'est un autre message d'erreur et il faut le résoudre aussi jusqu'à ce qu'il n'y ait plus de bugs.
Oui justement actuellement j'active la commande via ssh. Mais comme le dispositif à pour objectif un usage simple, il me faut une interface homme-machine.
Je vais essayer de voir quels droits sont accordés au fichier.
Regarde le module fabric, ça permet de créer rapidement un outil simple en cli pour lancer des commandes ssh
- Edité par thelinekioubeur 5 décembre 2020 à 17:43:30
script python raspberry à distance
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Blond, bouclé, toujours le sourire aux lèvres...
Blond, bouclé, toujours le sourire aux lèvres...
Blond, bouclé, toujours le sourire aux lèvres...
Blond, bouclé, toujours le sourire aux lèvres...
Blond, bouclé, toujours le sourire aux lèvres...