通过终端和PHP调用python脚本之间的区别?错误在哪里?
发布时间:2020-12-13 17:07:15 所属栏目:PHP教程 来源:网络整理
导读:我有一个 PHP脚本,它调用python脚本 $call_python = "python ../python/lp_3.py ".$author;$python_output = Null;$mystring = exec($call_python,$output_python); 这会在日志中产生错误: $vi logs/error_log shows....Traceback (most recent call last):
我有一个
PHP脚本,它调用python脚本
$call_python = "python ../python/lp_3.py ".$author; $python_output = Null; $mystring = exec($call_python,$output_python); 这会在日志中产生错误: $vi logs/error_log shows .... Traceback (most recent call last): File "../python/lp_3.py",line 14,in <module> import MySQLdb ImportError: No module named MySQLdb 如果我在终端上做python python / lp_3.py一切都很好.我错过了什么? 编辑: 在@ S.Lott的建议之后,我在终端和PHP中查看了变量PATH和PYTHONPATH. 在终端: $echo $PYTHONPATH $echo $PATH /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/texbin:/usr/X11/bin 如您所见,PYTHONPATH是空的. 在PHP中: echo getenv("PYTHONPATH"); // NOTHING echo getenv("PATH"); // /usr/bin:/bin:/usr/sbin:/sbin 也许我应该提到我的python脚本中的前两行是 #!/usr/bin/env python # encoding: utf-8 我愿意接受建议. =) EDIT2: 我在我的mac上检查了每个已安装的python版本.我发现,python2.7没有安装MySQLdb.有没有办法告诉PHP不要使用python2.7并使用例如python2.6而不是?我尝试在PHP中使用setenv(),但我无法弄清楚如何正确使用它,我甚至不知道这是否是正确的方法. 解决方法
在您的PHP代码中,您只需调用“python”,并让PHP决定使用哪个版本的Python.使用特定Python二进制文件的显式路径(例如/usr/bin/python2.6).
您需要知道安装了MySQLdb的Python版本的确切路径. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |