有人可以指出为什么我没有在echo中得到任何输出的错误。 php脚本echo可以很好地与ls或whoami等命令配合使用。但是,当我回显我的输出时,没有任何显示。我的python代码工作正常。 因此,这是html / php代码。忽略变量名,因为我只是尝试测试功能,并创建了一个简单的脚本来调用python函数以将两个数字相加。
<p><b>
Primary ref-ctr:</b>
<select size =2 name="formPrimctr">
<option value ="">Select ...</option>
<option value = "pctr1">1</option>
<option value = "pctr2">2</option>
</select>
</p>
<p><b>
Secondary ref-ctr:</b>
<select size =2 name="formSecctr">
<option value ="">Select ...</option>
<option value = "sctr1">5</option>
<option value = "sctr2">10</option>
</select>
</p>
<div class = emailadd>
<br/><b>
E-mail: </b><input type="email" required /><br/>
<br/>
<input type="submit" name="formSubmit" value="Submit" class="btn- Submit"><br>
<?php
if(isset($_POST['formSubmit'])){
$varPrimctr= $_POST['formPrimctr'];
$varSecctr = $_POST['formSecctr'];
$errorMessage = "";
}
$output = exec("python test1.py .$varPrimctr .$varSecctr");
echo $output;
?>
这是简单的测试python脚本:
#!/usrbin/env python
import sys
import os
import string
import time
sum =0
sum = int(sys.argv[1]) + int(sys.argv[2])
print ('sum:',sum)
lfp=open('testfile.csv','w')
lfp.write("Sum is %d\n\n" %sum)
现在,我只想用两个参数调用python脚本并回显输出。 在实际的应用程序中,我的php将调用带有4个参数的python脚本(其中一个将是电子邮件),而其他则是用户从下拉列表中选择的输入。python脚本实际上是一个包装器脚本,该包装器脚本调用另一个脚本进行一些处理并生成一个csv文件,应通过电子邮件发送给用户。 为了进行测试,我编写了这个简单的python脚本来测试如何从php将参数传递给python。
深深感谢这里的任何指导。
答案 0 :(得分:0)
尝试在2>&1
语句的末尾添加exec
,这将给出更详细的错误消息,如下所示:
$output = exec("python test1.py .$varPrimctr .$varSecctr 2>&1");
此外,尝试将以下行添加到PHP文件的顶部:
putenv("PYTHONIOENCODING=utf-8");