跳转到主要内容

浏览器中的交互式终端

项目描述

pyxterm.js

在您的浏览器中提供完全功能的终端。

screenshot

这是如何工作的?

在后台

  • 运行一个 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 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面