[英]Php exec script of python return empty string
我正在通過exec命令從一個php執行python腳本,收到空結果。 如果我從外殼執行python命令,它將正確返回正確的結果,並且日志是靜默的; 這是我的PHP功能:
public function poll($palina){
//set_include_path("/var/www/html/iPhone/inarrivo/python");
$pythonCommand="python3.4 ../../python/palina.py $palina";
$result=exec($pythonCommand);
echo "<blank>command=$pythonCommand result=$result</blank>";
$resultData = json_decode($result, true);
if (!is_array($resultData)) {
error_log($resultData);
$resultData=Array();
}
//print_r($resultData);
return $resultData;
}
這就是所謂的python腳本:
#!/usr/local/bin/python3.4
# change above line to point to local
# python executable
from xmlrpc.client import Server
from pprint import pprint
import sys, json
import datetime, time
palina=sys.argv[1]
DEV_KEY = 'UuC378Q3l3Y4vtF8q2Hj3i5Up6OmZKb2'
s1 = Server('http://muovi.roma.it/ws/xml/autenticazione/1')
s2 = Server('http://muovi.roma.it/ws/xml/paline/7')
token = s1.autenticazione.Accedi(DEV_KEY, '')
res = s2.paline.Previsioni(token, palina, 'it')
#pprint(res)
arrivi=res.get('risposta').get('primi_per_palina')[0].get('arrivi')
myList=[]
for arrivo in arrivi:
if 'nessun_autobus' not in arrivo and 'non_monitorata' not in arrivo:
output={}
acapolinea=arrivo.get('a_capolinea')
output["busDestination"]=arrivo.get('destinazione')
output["wait"]=arrivo.get('annuncio')
if output["wait"]=='In Arrivo':
output["receiving"]=1
else:
output["receiving"]=0
meb=arrivo.get('meb')
output["busNumber"]=arrivo.get('linea')
output["busLines"]=arrivo.get('id_percorso')
output["time"]=arrivo.get('tempo_attesa')
output["stops"]=int(arrivo.get('distanza_fermate'))
output["palina"]=arrivo.get('id_palina')
output["inarrivo"]=arrivo.get('in_arrivo')
partenza= arrivo.get('prossima_partenza')
if acapolinea == 1:
output["receiving"]=2
output["acapolinea"]=acapolinea
if partenza:
s = datetime.datetime.strptime(partenza.value, "%Y%m%dT%H:%M:%S")
output["capolineaDate"]=s.strftime('%H:%M')
myList.append(output)
print (json.dumps(myList));
該腳本在以前的服務器上運行良好。 是否需要在Centos上進行一些配置以使php和python正確集成?
python腳本需要具有完整路徑才能起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.