我正在制作一个执行python程序的PHP网页,当python程序运行时,它会实时显示输出。
在遵循this answer之后,这是我正在尝试的代码。在$cmd = 'python execs/reduction_code.py';
while(@ ob_end_flush());
$proc = popen($cmd, 'r');
echo '
';
while(!feof($proc)){
echo fread($proc, 4096);
@ flush();
}
echo '
';pclose($proc);
在我开始执行程序reduction_code.py之后,每隔30秒,它会显示很少的print语句(说明程序的状态)。该程序需要大约25分钟才能完全执行。当我使用终端运行python程序时,这很好地工作。在
但是,当我使用上面的php代码运行此代码时,它根本不显示任何输出。文件reduction_code.py是可执行的,apache有权执行和读取它。在
另外,当我运行一个简单的python程序,通过将$cmd中的值替换为$cmd = 'python execs/test.py';来ping地址时,我得到了页面中ping探测的预期实时输出。在
test.py是:
^{pr2}$
我是PHP新手,不知道为什么在运行reduction.py之后,页面根本不显示任何输出。在
编辑1:当我使用