Page 2 sur 5
Re: Lancer un script Python en PHP
Posté : jeu. 11 déc. 2014 11:11
par domi
essais l'adresse absolu.
commencer au /
Re: Lancer un script Python en PHP
Posté : jeu. 11 déc. 2014 11:19
par mike913
Bonjour,
Si tu lister ton fichier monfichier.py il y a peut-être une erreur dans la script python
Re: Lancer un script Python en PHP
Posté : jeu. 11 déc. 2014 11:58
par zeverybest
domi a écrit :essais l'adresse absolu.
commencer au /
J'ai essayé system("python /monfichier.py") ou system("sudo python /monfichier.py")
Pas mieux
Re: Lancer un script Python en PHP
Posté : jeu. 11 déc. 2014 12:00
par zeverybest
mike913 a écrit :Bonjour,
Si tu lister ton fichier monfichier.py il y a peut-être une erreur dans la script python
Si je lance mon fichier en ligne de commande dans une console du Raspberry par python monfichier.py cela fonctionne tres bien
Re: Lancer un script Python en PHP
Posté : jeu. 11 déc. 2014 12:32
par zeverybest
J'ai meme essayé de fair un script en batc qui lance mon fichier python
Le script fonctionne en ligne de commande, mais pas en php ; system("monscript.sh") ou system("./monscript.sh")
Re: Lancer un script Python en PHP
Posté : jeu. 11 déc. 2014 13:26
par mike913
est-ce que le script php et le script python sont dans le même répertoire.
Et le fichier /var/log/apache2/error.log donne Quoi ?
Re: Lancer un script Python en PHP
Posté : jeu. 11 déc. 2014 13:28
par vague nerd
Bonjour.
zeverybest a écrit :Le script fonctionne en ligne de commande, mais pas en php ; system("monscript.sh") ou system("./monscript.sh")
Attention. Si bous lancer ./script.sh à partir de votre répertoire utilisateur, ce n'est pas équivalent si c'est apache qui le lance.
Admettons que le script soit dans le répertoire utilisateur de l'utilisateur pi. Sont chemin absolu est /home/pi/monscript.sh.
En relatif, '.' représente le répertoire courant, '..' le répertoire parent. Si vous être dans le répertoire /home/pi/, ./monscript.sh va lancer le script. Si vous êtes n'importe où ailleurs, ça ne marchera pas.
En particulier si c'est apache qui lance le script par ./monscript.sh.
Essayer d'indiquer le chemin complet vers le scrtipt ! Par exemple system("/home/pi/monscript.sh")...
Suis-je clair ?
Cdt.
Re: Lancer un script Python en PHP
Posté : jeu. 11 déc. 2014 13:43
par mike913
Le script suivant situé dans mon répertoire home fonctionne en ligne de commande:
Code : Tout sélectionner
#!/usr/bin/env python
# coding=UTF-8
# =====================================
# import des modules
import serial
import datetime
import time
import struct
import sys
import os
import ConfigParser
# ----------------------------------------------------------------------------
# Lit la configuration
# ----------------------------------------------------------------------------
def Get_Config(configfile):
cfg = ConfigParser.ConfigParser()
cfg.read(configfile)
return cfg
# ----------------------------------------------------------------------------
# Ecrit dans le fichier de configuration
# ----------------------------------------------------------------------------
def Set_Config(configfile, cfg):
with open(configfile, 'wb') as config:
cfg.write(config)
#-------------------------------------------
# Boucle principale
#-------------------------------------------
cfgConf = Get_Config('Test.ini')
print cfgConf.get('Fichiers', 'meteoxml')
cfgConf.set('Fichiers', 'meteoxml','nouvelle Valeur')
Set_Config('Test.ini', cfgConf)
mais ne fonctionne plus dans le cas d'appel par un script php situé dans le répertoire /var/www/
car dans la ligne cfgConf = Get_Config('Test.ini') le nom du fichier à lire ne comprend pas le chemin complet et en remplaçant cfgConf = Get_Config('Test.ini') par cfgConf = Get_Config('/home/pi/Test.ini') plus d' erreur.
Dans la commande system tu peux mettre un paramètre pour avoir le résultat de la fonction (true ou false)
exemple: system($commande,$retour);
Re: Lancer un script Python en PHP
Posté : jeu. 11 déc. 2014 13:47
par zeverybest
Alors, voici mes infos :
Si je passe par un script en batc qui me lance mon script python, celui ci est bien executé, puisque j'ai ajouté une commande echo "test" et une commande ls dans ce script et ces 2 actions fonctionne, mais pas l'execution de mon script python
Le message error.log de /var/log/apache2 me donne ceci :
Traceback (most recent call last):
File"/var/www/brouillon/monfichier.py, line3 in <module>
import RPi.GPIO as GPIO
RPi.GPIO.setupExecution : No acces to /dev/mem. Try running as root
Pourtant, j'ai donné tous les droit a monfichier.py et l'ai associé a www-data
Deplus, lorsque je rajoute sudo devant mon python /var/www/brouillon/monfichier.py, le error.log me dit :
sudo : no tty present and no askpass program specified
Pour info, mon fichier python n'a pour fonction pour le moment, que de faire clignoter une LED connecter a un port GPIO
Re: Lancer un script Python en PHP
Posté : jeu. 11 déc. 2014 13:50
par vague nerd
Nous sommes plusieurs à vous avoir recommander de tester en utilisant des noms de fichiers absolus, c'est à dire en indiquant le répertoire complet du fichier. Par exemple /home/pi/script.sh.
Avez-vous essayé ? J'ai raté quelque chose ?
Cdt.