php使用参数调用python脚本,但没有输出

时间:2018-10-14 17:56:20

标签: php python

有人可以指出为什么我没有在echo中得到任何输出的错误。 php脚本echo可以很好地与ls或whoami等命令配合使用。但是,当我回显我的输出时,没有任何显示。我的python代码工作正常。 因此,这是html / php代码。忽略变量名,因为我只是尝试测试功能,并创建了一个简单的脚本来调用python函数以将两个数字相加。          

Test1数据库查询

<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。

深深感谢这里的任何指导。

1 个答案:

答案 0 :(得分:0)

尝试在2>&1语句的末尾添加exec,这将给出更详细的错误消息,如下所示:

$output = exec("python test1.py .$varPrimctr .$varSecctr 2>&1");

此外,尝试将以下行添加到PHP文件的顶部:

putenv("PYTHONIOENCODING=utf-8");