我有两个脚本。
1 - php web-scripts,它从用户收集信息并执行python脚本,并将所有收集的数据作为参数发送
2 - 使用sys.argv从php脚本获取参数并使用MySQLdb更新MySQL的python脚本
当我通过命令行运行python脚本时 - 它就像一个魅力。它做了它想做的任何事情。但是当我尝试使用PHP脚本执行python脚本时 - 在我从python脚本中删除导入MySQLdb之前没有任何反应。
我删除"导入MySQLdb"从我的python脚本 - PHP脚本可以执行它,它们都可以工作(除了更新MySQL)。
你有没有想到会出现什么问题?
P.S。 我试图收到错误
在python文件中我用它:
import traceback
import sys
import MySQLdb
# Some classes and functions
if __name__ == '__main__':
try:
main()
except Exception, err:
print traceback.format_exc()
并在php中使用:
$result = shell_exec("/usr/bin/python /FULL_PATH_TO/script.py $argument";
echo $result;
仍然......没什么。网页只是重新加载而不提供任何信息
答案 0 :(得分:0)
我遇到了同样的问题。这里的关键问题是你的python脚本没有输出任何东西!
并且找出发生了什么的关键是,你需要知道,这里发生了一些错误,但你看不到错误输出。你需要检查这个问题: PHP script can't get output from Python script
这里是简答:你需要exec并将错误输出(stderr)放到stdout。你需要做一些事情: exec('python hello-numpy.py 2>& 1');
你会发现问题,MySQLDB lib需要一些被拒绝的权限。
如何获取所需的权限,这是另一个问题:)