PHP exec python无法正常工作

时间:2011-02-27 05:32:10

标签: php python shell exec last.fm

嘿,你好。我从dreamhost在web服务器上运行python。我正在使用他们的python安装并使用可在此处找到的lastfm模块:http://code.google.com/p/python-lastfm/

让它正确导入我这样做

import sys
sys.path.append("/home/myusername/build/Python-2.5/Lib/site-packages/")
import lastfm

因为lastfm模块安装在那里。

当我使用putty ssh到我的服务器时,我可以简单地运行python test.py并且它完美地工作。但是当我使用

的PHP脚本运行它时
exec("python test.py");

它似乎不起作用,脚本不会运行。当我做的时候,它运行得非常好。

import lastfm

然后还有其他事情, 但是当我真的尝试用模块做一些事情时:

import lastfm
api=lastfm.Api(api_key)

它没有运行。再次,我可以在shell中使用相同的python安装运行脚本,它执行正常。因此,当我从php脚本运行它时,必定会发生一些错误。我认为它将运行完全相同的python和一切。我检查了其他帖子,他们说这可能是文件权限,但我把每个文件都放到777,它仍然无法正常工作。 idk问题可能是什么。在此先感谢大家。

4 个答案:

答案 0 :(得分:1)

尝试使用python可执行文件的完整路径。例如:

exec(“/ usr / bin / python test.py”)

您可以使用which命令从命令行找到完整路径:

$ python 的/ usr /斌/蟒

答案 1 :(得分:1)

无论python提出什么错误,都会转向孩子的stderr。尝试告诉php从stderr读取,或者(在python中)执行此操作:

import sys
sys.stderr = sys.stdout

答案 2 :(得分:0)

对于Windows用户:

$output = null;
exec('C:\\Python27\\python.exe C:\\sud.py', $output);
echo var_export($output, TRUE);

我整天搜索的代码^^
这就是为什么 - 希望它能帮到某个人。

答案 3 :(得分:-1)

对于Windows用户 - 感谢Karlisup,我的PHP文件可以读取python。 我在EC2亚马逊中使用BITNAMI WAMP,我的python文件(leadatos.py)和php文件在htdocs文件夹中。

我的电话是

<?php
  passthru('C:\\Python27\\python.exe leadatos.py');
 ?>

我的Python文件的最后一行是print "message"

希望它的话!