3

嘿,你们。我在 Dreamhost 的网络服务器上运行 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 中,但它仍然无法正常工作。我知道问题可能是什么。提前感谢大家。

4

4 回答 4

1

无论python引发什么错误,都会进入孩子的stderr。尝试告诉 php 从 stderr 读取,或者(在 python 中)这样做:

import sys
sys.stderr = sys.stdout
于 2011-02-27T06:17:58.267 回答
1

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

exec("/usr/bin/python test.py")

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

$哪个python /usr/bin/python

于 2011-02-27T05:47:03.100 回答
0

对于 Windows 用户:

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

我整天都在搜索的代码^^
这就是为什么-希望它能帮助别人。

于 2011-10-30T22:40:02.707 回答
-1

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

我的电话是

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

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

希望它的话!

于 2017-06-30T18:06:22.047 回答