0

我和这个问题有同样的问题, 从 PHP 调用 python 导入失败, 但现在我的另一个导入。

python uit.pytest.py脚本在命令行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 身份运行它时出现错误,说'也许以 root 身份运行?'。

这可能是不工作的原因吗?当用户 PHP 在其下运行时,从 PHP 调用 python 脚本?

我确实用sudo(见评论)执行了该语句,但我也读过也许不允许 php 用户这样做sudo

4

1 回答 1

1

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

这可能是不工作的原因吗?当用户 PHP 在其下运行时,从 PHP 调用 python 脚本?

Yes, that's your problem. The web server runs as www-data, not as root. (This user doesn't even have sudo access by default.) If you check the web server error log, you will probably see the "maybe run as root?" error message in there.

于 2013-02-12T17:48:52.100 回答