繁体   English   中英

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

[英]import RPi.GPIO as GPIO not working in python when called from php

我有与此问题相同的问题, 从PHP调用时python导入失败,但现在是我的另一个导入。

该脚本是从命令行( 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吗?

我现在注意到的是,当从命令行执行脚本时,我必须对它进行sudo,因为脚本说它想以root身份运行(当我不以root身份运行时,我会报错,说“也许以root身份运行)。 ?”。

那可以是不工作的原因吗? 在运行用户PHP的情况下,是否从PHP调用了python脚本?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM