我正在写一个Python CGI脚本,我想在我的笔记本电脑的浏览器上运行。这个脚本将SSH连接到两个Pis,并给出命令拍摄照片。托管此脚本的服务器位于我希望进入SSH的Pis之一,并且该Pi也充当其他Pi和我的笔记本电脑连接的访问点(所有内容都是LAN,未连接到Internet) 。无法通过网络浏览器访问pi相机
我成功地在笔记本电脑的浏览器上运行此脚本,在Pis上运行诸如ls -l
这样的简单命令,并在浏览器上打印出两者的结果。但是,我最终希望能够向Pis提供raspistill
命令。当我这样做时,只有服务器上的Pi正在拍摄图像,但其他Pi没有。我认为这是因为服务器的权限设置不正确(我试图运行命令为sudo
,但仍然没有运气)。但是,如果我在Python IDLE上运行相同的脚本,它可以正常工作。有人可以帮助我找出问题吗?
这里是我的脚本:
#! /usr/bin/env python3
from pssh import ParallelSSHClient
import cgi
print("Content-Type: text/plain\r\n")
print("\r\n ")
host = ['172.24.1.1','172.24.1.112']
user = 'XXXX'
password = 'XXXX'
client = ParallelSSHClient(host, user, password)
output = client.run_command('raspistill -o test.jpg', sudo=True)
// AMENDMENT:
for line in output['172.24.1.1'].stdout: // works as well with '172.24.1.112'
print(line)
修订: 显然,如果从stdout
I输出任何东西,它工作正常。为什么会这样?是等着我冲洗输出还是什么?我怀疑这可能是我使用的pssh软件包的问题。
我在两个Pis上都启用了摄像头和ssh接口。它已经开始工作了。显然,我需要输出一些照片来拍摄,正如我的代码修正中所指出的那样。我不知道为什么会这样。 –