环境:windows Server2008+Apache+php+MySQL
问题:shell可以执行成功,但是php调用python就不行了
开发一个项目时需要用php调用python命令,如下:
$cmd = 'python main.py -u '; exec($cmd,$res);
结果$res什么返回值都没有,这就尴尬了。。。于是排错,,apache的error_log是个好东西啊~~出现什么错误会显示到log文件中,当然,也可以在命令后写2>&1使错误回显在$res中,就像这样:
$cmd = 'python main.py -u 2>&1 ';
错误显示为python不是内部或外部命令,这应该是环境变量问题,,总之经过好久的脑抽才找到解决方法:
虽然配置了系统环境变量,但是php和shell应该不是一个库,所以解决方法很简单,将命令改成如下即可。
$cmd = 'c:/python27/python main.py -u http://www.example.com''
其中c:/python27是自己的python所在的路径
总结:每次解决了问题时都觉得自己是个智障。。在简单的问题上花费了太多时间,解决问题可能不会花费太多时间,花费时间的是找到问题的原因。就酱,希望自己更强大,写出有技术含量的东西。