如果PHP的返回状态为1,则表明您运行的进程遇到错误。(非零退出状态 通常
表示Unix风格的系统上有错误。几个程序不同,例如
diff。)尝试检查
stderr子进程产生的错误,看看那里打印了什么错误消息。
您可以这样显示
stderr:
Output from exec('python hello-numpy.py'): <?php echo exec('python hello-numpy.py 2>&1'); ?><br>该
2>&1指示外壳相结合
stderr,并
stdout为一个流。您通常不想这样做,但是可以很容易地看到错误。
更新: 由于您得到的错误是
importError: No module namednumpy我们可以尝试查看Python的路径。您的系统上可能安装了多个Python,Apache的环境(根目录等)也可能不同于通过SSH运行Python时所获得的环境。尝试在两种环境中执行此Python脚本:
import sys, osfor path in sys.path: print pathprintprint 'Root:', os.readlink('/proc/self/root') # Linux only这些路径之一应指向
numpy安装位置,并且在Apache中运行它时可能会丢失。或者,Apache进程具有不同的根目录,该根目录将由Python进程继承。
解决方案: 缺少环境变量。看评论。



