Skip to content

Pyruns CLI 详细指南 (CLI Guide)

当你在无头服务器 (Headless Server) 上运行模型,或者偏爱纯命令行操作,不想通过浏览器映射端口时,Pyruns 提供的 CLI 交互模式 能够为你提供与 Web UI 完全对等的功能体验。这不仅包括了任务生成、任务运行与后台排队调度,还包含彩色的独立日志流跟随和实时的图形化资源监视。

顶层入口先分清

在进入 cli 子命令之前,先把 pyr 顶层入口记清楚:

bash
pyr
  • 直接打开当前目录的 shell workspace
  • 适合先管理 shell / PowerShell / cmd / bash 命令任务
  • 会直接进入 Web UI
bash
pyr ui
  • 打开 launcher
  • 适合先选脚本,再进入 script workspace
bash
pyr <script.py>
  • 直接围绕某个 Python 脚本建立 script workspace
  • 适合 argparse / pyruns.load() 风格脚本
bash
pyr cli [script.py]
  • 进入交互式 CLI
  • 适合无头服务器、SSH、纯终端场景

如果你想随时查看这些入口说明,也可以直接运行:

bash
pyr help

启动 CLI

你可以通过两种形式调用 CLI:

1. 携带目标脚本启动 (推荐)

bash
pyr cli your_script.py

若运行此命令,Pyruns 会分析你的脚本,并自动准备好它的所有运行时配置、参数解析。如果该脚本尚未初始化 _pyruns_ 工作区,CLI 也会贴心地自动帮你完成所有环境构建工作,接着进入交互终端。

2. 在既有工作区启动

bash
cd /path/to/project
pyr cli

如果你已经在包含 _pyruns_ 目录的项目根目录下(或者此前已经跑过 pyr your_script.py),直接输入 pyr cli 会自动定位到最近一次操作的脚本,唤出 CLI 交互终端。

不论何种方式进入,都将来到如下形态的 REPL:

text
  Pyruns CLI  (type 'help' for commands, 'exit' to quit)
pyruns>

命令详解与操作手册

pyruns> 的提示符下,可使用的完整核心命令如下:

1. ls / list - 任务浏览

检索并排版当前项目内所有的历史任务执行记录。

  • 基本用法:
    text
    pyruns> ls
  • 带关键字检索: 允许使用参数过滤表单信息,或者针对任务名称进行纯文本高亮搜索。
    text
    pyruns> ls lr 0.001
  • 交互式搜索 -i: (强推) 如果你有超过 10+ 的任务记录,可以使用交互模式。类似 fzf 的实时选择界面,配合方向键浏览每一个任务的快照数据:
    text
    pyruns> ls -i

2. run - 运行/调度任务

控制任何 Pending (待处理) 或 Completed (已完成可重跑) 状态的任务。

  • 单项任务: 根据列表中的序号或全名唤起:

    text
    pyruns> run 1

    执行单个任务后,它不仅会被马上调度,CLI 还会自动调用 log 进入该任务的全屏日志展示界面。你将能够实时看见所有输出 (包含 tqdm 进度条等 ANSI 色彩)。按 q 随时退回 CLI 且不中断后台任务运行!

  • 批量任务: 指定多个序号或名称:

    text
    pyruns> run 2 3 4

    如果你传递了多个任务,CLI 会询问你并发的 Max Workers 数量(类似于 Web UI Manager 中右上角的线程调度设定)。输入完毕后,这批任务会被瞬间丢入后台隔离的执行池运行。

3. jobs - 活跃任务一览

检查当前状态为 queuedrunning 的活跃执行管线。它的输出格局更紧凑,仿造纯正的 Linux 作业终端表述:

text
pyruns> jobs

4. log - 全屏运行日志查阅 (Interactive Log Viewer)

当你的后台中有多个任务正在并发运算时,你可以定向“切入”其中一个执行模块,在大屏界面下查阅隔离环境下的 runN.log 或崩溃异常 error.log 的实时动态:

text
pyruns> log 3

提示: 支持分页、尾随读取。随时按 n/p 切换该任务不同的历史运行批次,按 q 退出全屏日志模式,返回 REPL。这绝不会破坏或停止正在跑训练的进程!

5. gen / generate - 编辑与生成网格参数

在终端下唤起系统编辑器实现类似于 Web UI 参数表单的参数增添。

text
pyruns> gen
  1. 运行此命令后,Pyruns 将会通过 $GIT_EDITOR / $VISUAL / vinano 唤醒你的默认编辑器。如果在 VSCode 内测,会直接新建临时标签页。
  2. 文件内会展示提取出的 config_default.yaml 骨架。
  3. 请自由利用| 隔开的全排列区间批量语法声明参数网络。
  4. 保存、关闭该文本!
  5. Pyruns 终端会自动捕捉文件保存事件,在提示确认后立即在后台切片出相应的批量 Task 队列。

6. delete / del / rm - 从列表移除

支持针对单开/错开的环境记录软删除 (实际进入了 .trash 回收站以防止误操作丢失研究记录):

text
pyruns> del 1 2 3

7. stat / status - 性能监控仪

脱离了 Web UI 的监视器后,在纯终端内 Pyruns 也提供基于 ANSI 的系统负载仪。

  • 快照查看:
    text
    pyruns> stat
  • Live 实时监控 -i: 将启动每秒刷新的监控画板,实时展现系统整体物理内存与各个 GPU (如果你安装了 gpustat) 的 VRAM 和计算利用率柱状图!对于多路显卡服务器特别有用:
    text
    pyruns> stat -i
    (按 Ctrl+C 退出)

与 Web UI 的联协使用

绝不冲突。 Pyruns 所有对于参数、状态与排队的处理都落在本地文件锁记录内,你完全可以:

  1. 在远端服务器使用 pyr cli train.py
  2. 使用 gen 创建 200 个任务并排队。
  3. 如果此时在另一台电脑通过 SSH 隧道映射了端口跑起了 pyr train.py,你将在 Web 界面的 Manager 栏中实时看见这 200 个任务从 Queue 被消化!反之同理。