从PHP调用时,导入RPi.GPIO作为GPIO在python中不起作用

时间:2013-01-29 21:41:06

标签: php python linux raspberry-pi

我和这个问题有同样的问题, python import fails when called from PHP 但现在是我的另一个导入。

脚本正在从命令行(python uit.py)开始工作,而test.py表示'hello'也可以工作,但是当从php调用uit.py(源代码来源)时,它不起作用。 我得到的只是返回代码1,我试过exec(), passthru() and system(),并且没有一个返回除“1”以外的任何内容 我是linux和python的新手,所以我不知道如何设置导入直接而不是相对的路径(如果这应该有帮助)

#!/usr/bin/python
# Hello world python
import RPi.GPIO as GPIO
print "Start";

GPIO.setmode(GPIO.BOARD);
GPIO.setup(16, GPIO.OUT)
GPIO.output(16, True)

print "Licht uit";

编辑: 我现在注意到的是,当来自命令行的脚本时,我必须sudo因为脚本说它想要以root运行(当我不运行它时我得到一个错误根本说“也许以root身份运行?”。

这可能是不工作的原因吗?当用户PHP在?

下运行时,从PHP调用python脚本

我用sudo执行了语句(请参阅注释)但我也读过可能php用户不允许sudo

1 个答案:

答案 0 :(得分:1)

  

我现在注意到的是,当来自命令行的脚本时,我必须sudo它,因为脚本说它想以root身份运行(当我不以root身份运行它时,我得到一个错误'也许以root身份运行?'。

     

这可能是不工作的原因吗?当用户PHP在?

下运行时,从PHP调用python脚本

是的,这是你的问题。 Web服务器以www-data运行,而不是以root身份运行。 (默认情况下,此用户甚至没有sudo访问权限。)如果检查Web服务器错误日志,您可能会看到“可能以root身份运行?”那里有错误信息。