Ver Mensaje Individual
  #8 (permalink)  
Antiguo 03/01/2014, 10:19
Avatar de jja
jja
 
Fecha de Ingreso: diciembre-2010
Ubicación: BCN
Mensajes: 47
Antigüedad: 14 años, 2 meses
Puntos: 0
Pregunta Respuesta: Ejecutar python desde PHP

Hola,

He conseguido ejecutar ya el script python desde PHP con el siguiente código:

Código PHP:
$query='python getValues.py -s sonda -i 1';
$output=array();
exec($query$output);
foreach(
$output as &$valor)
{
            echo 
$valor.'<br/>';

El problema es que en el script (os lo comparto a continuación) nunca me salta el on_status, o eso creo, porque por pantalla me pinta "llego1" pero nunca llega a pintarme "llego2":

Código Python:
Ver original
  1. #! /usr/bin/env python
  2. import sonda
  3. from unidecode import unidecode
  4. import datetime
  5. import optparse
  6. import MySQLdb as mdb
  7. import sys
  8.  
  9. class StdOutListener(sonda.StreamListener):
  10.  
  11.     def on_status(self, status):
  12.  
  13.         con = mdb.connect('-', '-', '-', '-')
  14.         cur = con.cursor()
  15.         cur.execute("INSERT INTO sonda(estado) VALUES (%s)",(unidecode(status.sonda).encode('latin1')))
  16.         con.commit()
  17.         con.close()
  18.         return True
  19.  
  20.     def on_error(self, status_code):
  21.         return True
  22.  
  23.     def on_timeout(self):
  24.         return True
  25.  
  26.     def on_limit(self, status):
  27.         print 'Tope limite'
  28.  
  29. if __name__ == '__main__':
  30.  
  31.     parser = optparse.OptionParser('usage %prog -s <sonda> -i <numero>')
  32.     parser.add_option('-s', dest='son', type='string', help='Pon sonda')
  33.     parser.add_option('-i', dest='num', type='int', help='Pon numero')
  34.     (options, args) = parser.parse_args()
  35.     son = options.son
  36.     num = options.num
  37.  
  38.     if search == None:
  39.         exit(0)
  40.     else:
  41.         stream = sonda.Stream(StdOutListener())
  42.         print "llego1"
  43.         stream.filter(track=[s])
  44.         print "llego2"

Gracias
__________________
El supremo arte de la guerra es someter al enemigo sin luchar.

Sun Tzu