2 回答

TA貢獻1865條經驗 獲得超7個贊
如果我理解得很好,你會尋找一種機制,它允許你在網絡服務器上顯示一個終端。
然后你想在那個終端上運行一個交互式 python 腳本,對吧。
所以最終共享一個終端的解決方案不一定要用python寫,對吧?(雖然我必須承認,如果我找到它們,我更喜歡 python 解決方案,但有時務實并不是一個壞主意)
您可能會在 google 上搜索 http 和終端仿真器。
也許 ttyd 符合要求。https://github.com/tsl0922/ttyd
在 Linux 上構建可以用
sudo apt-get install build-essential cmake git libjson-c-dev libwebsockets-dev
git clone https://github.com/tsl0922/ttyd.git
cd ttyd && mkdir build && cd build
cmake ..
make && make install
用法類似于:ttyd -p 8888 yourpythonscript.py
然后你可以連接到網絡瀏覽器http://hostip:8888
您當然可以將此 URL“隱藏”在反向代理后面并為其添加身份驗證或添加諸如--credential username:password密碼保護 URL 之類的選項。
附錄: 如果您想與不同的人共享多個腳本并且共享更像是一個即時的事情,那么您可以查看 tty-share ( https://github.com/elisescu/tty-share ) 和 tty-server ( https://github.com/elisescu/tty-server )
tty-server 可以在 docker 容器中運行。tty-share 可用于在您的機器上的一個終端上運行腳本。它會輸出一個 url,你可以將它提供給你想要與之共享特定會話的人)如果你認為這很有趣,我可能會詳細說明這個

TA貢獻1757條經驗 獲得超7個贊
>> 在此插入安全免責聲明 <<
最簡單、最駭人聽聞的方法是創建一個div用于存儲輸出的元素和一個input用于輸入命令的元素。然后你可以將POST命令ajax到后端控制器。
控制器將接受命令并運行它,同時捕獲命令的輸出并將其發送回網頁以在div
在 python 中,我使用它來捕獲命令輸出:
from subprocess import Popen, STDOUT, PIPE
proc = Popen(['ls', '-l'], stdout=PIPE, stderr=STDOUT, cwd='/working/directory')
proc.wait()
return proc.stdout.read()
添加回答
舉報