开发者

PHP exec python not working

hey yall. Im running python on a webserver from dreamhost. I am using their install of python and am using a lastfm module that can be found here: http://code.google.com/p/python-lastfm/

to get it to import properly i do this

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

since the lastfm module is installed there.

When I use putty开发者_如何学Go to ssh into my server, i can simply run python test.py and it works perfectly. But when i run it from a php script with

exec("python test.py");

it suppossedly does not work and the script doesnt run. it runs perfectly fine when i do

import lastfm

and then have other things after, but when i actually try to do something with the module like:

import lastfm
api=lastfm.Api(api_key)

it does not run. once again i can run the script using the same python install in a shell and it executes fine. So something must be happening that goes wrong when i run it from the php script. I figured it would be running the exact same python and everything. I checked other posts and they say it may be something with file permissions, but ive put every file to 777 and it still doesnt work. idk what the problem could be. thanks in advance everyone.


Try using the full path to the python executable. For example:

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

You can find the full path from the command line using the which command:

$ which python /usr/bin/python


Whatever error python is raising would be going to the child's stderr. Try either telling php to read from stderr, or (in python) do this:

import sys
sys.stderr = sys.stdout


For Windows users:

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

The code i was searching whole day ^^
That's why - hope it'll help somebody.


For Windows User - Thanks to Karlisup my PHP file could read python. I'm using BITNAMI WAMP in EC2 Amazon, my python file (leadatos.py) and php file are on htdocs folder.

My calling was

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

The last line of my Python file was print "message".

Hope it words!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜