嘿,你们好。我正在从dreamhost的from服务器上运行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,它仍然不起作用。了解问题可能是什么。提前感谢大家。
发布于 2011-02-27 13:47:03
尝试使用python可执行文件的完整路径。例如:
exec("/usr/bin/python test.py")
您可以从命令行使用which命令查找完整路径:
$哪个python /usr/bin/python
发布于 2011-02-27 14:17:58
无论python引发什么错误,都会发送到孩子的stderr。尝试告诉php从stderr读取数据,或者(在python中)这样做:
import sys
sys.stderr = sys.stdout发布于 2011-10-31 06:40:03
对于Windows用户:
$output = null;
exec('C:\\Python27\\python.exe C:\\sud.py', $output);
echo var_export($output, TRUE);我搜索了一整天的代码^^
这就是为什么-希望它能帮助别人。
https://stackoverflow.com/questions/5131641
复制相似问题