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#! /usr/bin/env python
import sonda
from unidecode import unidecode
import datetime
import optparse
import MySQLdb as mdb
import sys
class StdOutListener(sonda.StreamListener):
def on_status(self, status):
con = mdb.connect('-', '-', '-', '-')
cur = con.cursor()
cur.execute("INSERT INTO sonda(estado) VALUES (%s)",(unidecode(status.sonda).encode('latin1')))
con.commit()
con.close()
return True
def on_error(self, status_code):
return True
def on_timeout(self):
return True
def on_limit(self, status):
print 'Tope limite'
if __name__ == '__main__':
parser = optparse.OptionParser('usage %prog -s <sonda> -i <numero>')
parser.add_option('-s', dest='son', type='string', help='Pon sonda')
parser.add_option('-i', dest='num', type='int', help='Pon numero')
(options, args) = parser.parse_args()
son = options.son
num = options.num
if search == None:
exit(0)
else:
stream = sonda.Stream(StdOutListener())
print "llego1"
stream.filter(track=[s])
print "llego2"
Gracias