PHP exec python not working

吃可爱长大的小学妹 提交于 2019-12-10 21:33:33

问题


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 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.


回答1:


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




回答2:


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



回答3:


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.




回答4:


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!



来源:https://stackoverflow.com/questions/5131641/php-exec-python-not-working

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!