浏览器中的交互式终端
项目描述
pyxterm.js
在您的浏览器中提供完全功能的终端。
这是如何工作的?
在后台
- 运行一个 Flask 服务器
- Flask服务器使用 flask-socketio,这是一个用于Flask和socketio的websocket库
- 产生一个 pty ("伪终端"),运行bash。
- 您可以将pty视为一种序列化/反序列化终端会话的方法。Python文档将其描述为“启动另一个进程,并能够以程序方式写入和读取其控制终端”。
在前端
- 使用 Xterm.js 在浏览器中渲染 Xterm 输出数据。
- 这意味着终端用于控制光标位置、颜色和其他选项的 转义码 可以直接传递给Xterm.js,Xterm.js会忠实地将它们渲染为终端。
- 后端pty进程的输出被馈入其中。
- 来自浏览器的输入通过websocket传递到pty的输入
为什么?
这个项目的真正目的是展示如何将Xterm.js、Python、Flask和Websockets结合在一起,在浏览器中运行pty的基本证明概念。
这是一个
- 使用终端构建您自己的Web应用的起点
- 了解什么是
pty
以及如何在Python中使用它的学习工具 - 查看Flask和Flask-SocketIO的实际应用方式
- 在有意义的环境中与Xterm.js进行互动的方式
安装
有多种安装和运行的方法。
克隆并本地运行
克隆此存储库,进入pyxtermjs
目录。
如果您有nox,可以运行以下命令。
> nox -s run
Nox会为您设置虚拟环境并运行正确的命令。您可以像这样向服务器传递参数
> nox -s run -- --debug
如果您没有nox,您可以从虚拟环境中运行以下命令。
> pip install -r requirements.txt
> python -m pyxtermjs
> python -m pyxtermjs --debug
安装
您可以使用pipx(推荐)或pip进行安装。
> pipx install pyxtermjs
> pyxtermjs
或者您可以尝试运行PyPI上的最新版本
> pipx run pyxtermjs
API
> pyxtermjs --help
usage: pyxtermjs [-h] [-p PORT] [--host HOST] [--debug] [--version]
[--command COMMAND] [--cmd-args CMD_ARGS]
A fully functional terminal in your browser.
https://github.com/cs01/pyxterm.js
optional arguments:
-h, --help show this help message and exit
-p PORT, --port PORT port to run server on (default: 5000)
--host HOST host to run server on (use 0.0.0.0 to allow access
from other hosts) (default: 127.0.0.1)
--debug debug the server (default: False)
--version print version and exit (default: False)
--command COMMAND Command to run in the terminal (default: bash)
--cmd-args CMD_ARGS arguments to pass to command (i.e. --cmd-args='arg1
arg2 --flag') (default: )
项目详情
下载文件
下载适合您平台的自定义文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
pyxtermjs-0.5.0.2.tar.gz (7.9 kB 查看哈希值)
构建分发
pyxtermjs-0.5.0.2-py3-none-any.whl (8.1 kB 查看哈希值)