0

我正在为我在该主题中所写的内容而苦苦挣扎。情况是这样的:

我的地址上有一个带有 lighttpd 的 RPihttp://myrpi.com/ 我的地址上有另一个网站http://othersite.com/

在其他站点(http:\\othersite.com\index.html)的索引中,我想嵌入一个 python 脚本,它提供来自 myrpi.com 的空像素图像(<img src="http://myrpi.com/pixel.py">

在这个脚本中,除了读取 png 文件并将其内部打印回请求者之外 - 我希望它运行一些 shell 命令,这些命令将通过 RPi gpio 点亮一个 LED。

到目前为止,我在其他人的帮助下得到了这个脚本,但它仍然不起作用。服务图像部分有效,而 LED 则无效。即使命令行中的相同命令工作正常:

#!/usr/bin/env python

import subprocess
import time
import cgi
import cgitb


cgitb.enable()

subprocess.check_call(['/home/pi/scripts/wiringPi/gpio/gpio' ,'write', '7', '1'])


print "Content-type: image/jpeg\n"


f=open("/var/www/cgi-bin/1.png")
data=f.read()
f.close()
print data


time.sleep(0.5)

subprocess.check_call(['/home/pi/scripts/wiringPi/gpio/gpio', 'write', '7', '0'])

虽然,subprocess.check_call我得到一个例外(正常subprocess.call- 提供图像但没有 LED):http: //i.imgur.com/wJR17tB.png

这里有点失落。有什么想法可以以不同的方式完成吗?或者如何解决这个问题?

谢谢!

更新:

如果我在命令行中运行它:

$ sudo /home/pi/scripts/wiringPi/gpio/gpio write 7 1

有用。没有sudo- 它说:

/home/pi/scripts/wiringPi/gpio/gpio: Must be root to run. Program should be suid root. This is an error.

如果我 suid ( chmod u+s) gpio 那么即使使用 sudo 也不起作用。

4

0 回答 0