我正在打破这个工作,但我走到了尽头。我不知道我做错了什么。 我玩php和python;试图通过php exec()执行python脚本,返回一个输出并将其传递给另一个python脚本。 这是我的工作流程: 1)通过jquery和ajax请求我将一些数据传递给php文件(exec1.php),如下所示:
$('#tabs').show();
$('#parkList').hide();
2)我运行Module1.py的python文件如下所示:
$number = $_POST['numberOfClusters'];
$shape = $_POST['shapeFilePath'];
// EXECUTE THE PYTHON SCRIPT
$command = "python ./python/Module1.py $number $shape";
exec($command,$out,$ret);
print_r($out);
print_r($r); //return nicely 1.
3)然后我在我以前的AJAX请求的成功函数中有一个嵌套的AJAX请求,我在其中将响应(在本例中为cls000列表)传递到一个名为(exec2.php)的php脚本中,如下所示:
# this is a list of list of tuples
cls000 = [[(365325.342877, 4385460.998374), (365193.884409, 4385307.899807), (365433.717878, 4385148.9983749995)]]
# RETURN DATA TO PHP
print cls000
4)我的Module2.py脚本如下所示:
# PASS VARIABLES FROM FORM
$number = $_POST['numberOfClusters'];
$shape = $_POST['shapeFilePath'];
$clusterCoords = $_POST['response']; # response from previous Ajax request
// EXECUTE THE PYTHON SCRIPT
$command = "python ./python/Module2.py $number $shape $clusterCoords";
exec($command,$out,$ret);
print_r($out); ## THIS GIVES ME AN EMPTY ARRAY!!
print_r($ret); ## THIS GIVES ME A RETURN STATUS: 2
我做错了什么?如果我删除这一行' cls000 = json.loads(sys.argv [9])'并返回例如' shape'一切正常。但是当我尝试返回cls000时,我得到一个状态码2。 我在这里缺少什么?