让它正确导入我这样做
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问题可能是什么。在此先感谢大家。
答案 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"
。
希望它的话!