Skip to main content

Lightweight web UI for managing, running, and monitoring Python experiments.

Project description

Pyruns

English | 简体中文

PyPI version Python Versions License

轻量级 Python 实验管理 Web UI —— 调参、批量运行、实时监控,一站式解决 🚀

Pyruns 为你的 Python 脚本提供一个开箱即用的浏览器界面:自动解析 argparse 参数生成可视化表单,通过内置语法一键展开参数网格并批量生成任务,统一调度并行执行,在浏览器中实时追踪 ANSI 彩色日志,最后导出跨任务的指标报告。

不需要改动任何业务代码。

pip install pyruns
pyr train.py          # 就这一行

✨ 核心能力

能力 说明
🔌 零侵入接入 自动解析 argparse 定义,渲染为 Web 表单。也支持直接导入 YAML/JSON 配置文件
🧮 批量参数网格 lr: 0.001 | 0.01 | 0.1 一行声明,自动展开笛卡尔积或配对组合,秒级生成数百任务
并行调度执行 内置任务队列 + 线程/进程工作池,可控并发数,一键批量运行
📋 任务全生命周期管理 卡片式看板:状态过滤、搜索、置顶、笔记、环境变量、参数快照、运行日志,一目了然
🖥️ 实时彩色终端 浏览器内流式查看 ANSI 着色日志(兼容 tqdmcolorama),增量推送零卡顿
📊 指标采集与导出 脚本中调用 pyruns.add_monitor(loss=0.23) 记录关键指标,跨任务聚合导出 CSV/JSON 报告
💻 系统资源面板 顶部实时显示 CPU / RAM / 多 GPU 利用率与显存
📁 工作区隔离 按脚本名自动隔离(_pyruns_/train/ vs _pyruns_/test/),互不干扰,软删除可恢复

🚀 快速开始

模式 1:Argparse 脚本(零配置)

无需修改你的代码。Pyruns 通过 AST 静态分析自动提取 argparse 参数并生成 UI。

pyr train.py

首次运行时,Pyruns 会在脚本同级目录下创建 _pyruns_/train/config_default.yaml(包含所有参数的默认值),并启动 Web UI。

模式 2:自定义 YAML 配置

对于使用 config = pyruns.load() 读取配置的脚本,首次运行时传入 YAML 文件:

pyr train.py my_config.yaml   # → 复制为 _pyruns_/train/config_default.yaml

之后直接运行即可,Pyruns 自动加载已保存的配置:

pyr train.py                   # → 自动读取 _pyruns_/train/config_default.yaml

再次传入新的 YAML 会覆盖旧模板。

pyr help      # CLI 帮助
pyr version   # 查看版本

🎯 功能概览

🔧 Generator — 参数配置与批量生成

加载参数模板,在结构化表单或 YAML 编辑器中调整参数。使用批量语法一次性生成参数搜索网格。

Generator UI

解析 argparse 时,若同时存在短参数和长参数(如 -b, --batch_size),自动采用长参数名作为配置键。

📦 Manager — 任务控制台

卡片网格展示所有任务。支持按状态过滤、模糊搜索、批量选中运行。点击卡片查看完整元数据:

Manager UI

任务信息总览
Task Details Info
配置快照查看
Task Details Config
实验笔记记录
Task Details Notes
环境变量详情
Task Details Env

📈 Monitor — 实时日志与指标导出

浏览器内实时流式查看 ANSI 彩色终端输出。顶部面板持续展示 CPU / RAM / GPU 资源状态。

Monitor UI

在脚本末尾调用 pyruns.add_monitor() 记录评估指标,跨任务聚合导出 CSV/JSON:

pyruns.add_monitor(last_loss=last_loss)

Export Report


🧪 批量生成语法

在 Generator 页面中直接使用管道语法进行参数网格搜索。

笛卡尔积 | — 全排列组合(3 × 2 = 6 个任务):

learning_rate: 0.001 | 0.01 | 0.1
batch_size: 32 | 64

配对组合 (|) — 按位置一一对应(3 个任务):

seed: (1 | 2 | 3)
experiment_name: (exp_a | exp_b | exp_c)

两种语法可混合使用。详见 批量语法指南


📂 工作区结构

首次运行 pyr train.py 时,自动创建以下结构:

your_project/
├── train.py
└── _pyruns_/
    ├── _pyruns_settings.yaml      # 全局设置(端口、并发数、执行模式等)
    └── train/                     # 按脚本名隔离
        ├── config_default.yaml    # 参数模板(自动生成或导入)
        └── tasks/
            ├── my-exp-[1-of-6]/
            │   ├── task_info.json # 元数据(状态、时间、PID、笔记等)
            │   ├── config.yaml    # 本次运行的参数快照
            │   └── run_logs/
            │       └── run1.log   # 控制台输出
            └── .trash/            # 软删除(可恢复)

不同脚本完全隔离(_pyruns_/train/_pyruns_/test/ 互不影响)。

可通过 _pyruns_settings.yaml 自定义设置:

ui_port: 8099                      # Web UI 端口
generator_form_columns: 2          # 表单列数
manager_max_workers: 4             # 最大并发数
manager_execution_mode: thread     # 执行模式: thread | process
log_enabled: false                 # 调试日志

📖 文档

文档 说明
📗 安装与快速开始 5 分钟上手完整工作流
📙 配置系统 _pyruns_ 目录结构、配置优先级、类型推断
📘 批量语法 笛卡尔积 / 配对组合 / 嵌套参数展开
📕 界面操作 Generator、Manager、Monitor 三页面详细操作
📓 API 参考 read() / load() / add_monitor() 及工具函数
📒 架构设计 三层架构、数据流、调度机制(面向贡献者)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyruns-0.0.8.tar.gz (96.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyruns-0.0.8-py3-none-any.whl (94.8 kB view details)

Uploaded Python 3

File details

Details for the file pyruns-0.0.8.tar.gz.

File metadata

  • Download URL: pyruns-0.0.8.tar.gz
  • Upload date:
  • Size: 96.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for pyruns-0.0.8.tar.gz
Algorithm Hash digest
SHA256 92ef0d99cc50b540bdbf4bbdbdb1d107a8455fb16008a363aa304d485372d206
MD5 065bfc00567e09ad68eb47ee6f61be0d
BLAKE2b-256 8914c352ccca8d61098a98420780a574839d95b80ea8fd68b2d2ce60c0798503

See more details on using hashes here.

File details

Details for the file pyruns-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: pyruns-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 94.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for pyruns-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 8d3073e848e81dbf8e7c399a0b6c4f2ad2b08f3a1c273ca7c4c73bbc8ff55b2a
MD5 8a9e47d1f902581a64cf145b7d5fe6cf
BLAKE2b-256 30d97d367a218cfc9b97a8133f8c2c7239ec608813f7b16c83be79db6ddd2162

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page