我和这个问题有同样的问题, 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
?
答案 0 :(得分:1)
我现在注意到的是,当来自命令行的脚本时,我必须sudo它,因为脚本说它想以root身份运行(当我不以root身份运行它时,我得到一个错误'也许以root身份运行?'。
这可能是不工作的原因吗?当用户PHP在?
下运行时,从PHP调用python脚本
是的,这是你的问题。 Web服务器以www-data
运行,而不是以root身份运行。 (默认情况下,此用户甚至没有sudo访问权限。)如果检查Web服务器错误日志,您可能会看到“可能以root身份运行?”那里有错误信息。