我正在寫一個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接口。它已經開始工作了。顯然,我需要輸出一些照片來拍攝,正如我的代碼修正中所指出的那樣。我不知道爲什麼會這樣。 –