在PHP中执行python并获得响应,因为我进入终端

时间:2016-02-10 14:20:38

标签: php python apache shell-exec

我是PHP编程的新手。我需要从php执行python代码。我的Python代码包含一些外部模块。 Php代码是     

$op=shell_exec('python mgs.py');
echo $op;

?>

这是我想要的代码,我需要得到确切的输出,因为我进入终端(如果错误,那也是)

python代码

import mechanize
def mgs():
    a=0
    flag=0
    browser = mechanize.Browser(factory=mechanize.RobustFactory())
    browser.set_handle_robots(False)
    browser.open("http://14.139.185.88/cbcsshrCamp/index.php?module=public&page=result") 
    browser.select_form(nr=0)
    control=browser.find_control('exam_id')
    print control
    control.value=['203']
    browser.form["prn"]="130021069679"
    browser.submit()
    html = browser.response().readlines()               
    for i in range(0,len(html)):
       if 'Failed' in html[i]:                 
          flag=1
    if flag==1:
       print "Fail"
    else:
       print "Pass"



mgs()

。我没有在浏览器窗口上获得任何输出,但是当我尝试在终端中执行PHP代码时,它很好.. 即,(php index.php)

我的操作系统> Ubuntu的 Apache 2

1 个答案:

答案 0 :(得分:0)

最有可能的是,python不在执行php脚本的用户的路径中。

请改为尝试:

<?php
    $op = shell_exec('/usr/bin/python3 mgs.py');
    echo $op;
?>

当然,如果没有正确的解释器,请将解释器更改为正确的路径。