- 教育
- 人工智能
- 深度学习
【免费下载链接】pyre-code
A self-hosted ML coding practice platform. 68 problems from ReLU to flow matching — attention, training, RLHF, diffusion, and more. Instant feedback in the browser.
Pyre Code是一个自托管的 ML 编码练习平台,内置 76 道从 ReLU 到 flow matching 的 PyTorch 实现题,浏览器内编写、本地判题、秒级反馈。本文带你用setup.sh 一键安装、conda 手动部署、Docker Compose 容器化部署三种方式快速搭建,并附完整对比,帮你 5 分钟内跑起自己的判题环境。
部署前先看:Pyre Code 的架构与端口
部署 Pyre Code 前,先了解它由哪几部分组成,遇到问题时才知道往哪里查:
| 层级 | 组件 | 说明 | 对应位置 |
|---|---|---|---|
| 前端 | Next.js + Monaco 编辑器 | 浏览器代码编辑器与题目页面,端口3000 | web/ |
| 后端 | FastAPI 评测服务 | 接收提交、调度判题,端口8000 | grading_service/main.py |
| 判题引擎 | torch_judge | 76 道题目定义与测试用例执行 | torch_judge/ |
| 存储 | SQLite | 进度与提交记录,默认./data/pyre.db | 环境变量DB_PATH |
环境要求只有两条:
- Python3.11+
- Node.js18+
后端依赖包括fastapi、uvicorn、torch等,见 pyproject.toml。全程无需 GPU,判题引擎在 CPU 上即可完成所有测试。
方式一:setup.sh 一键安装(推荐)
适合 macOS / Linux 新手,一条脚本完成建环境、装依赖,setup.sh 的完整流程是:
- 检测系统是否安装了
uv,有则优先用uv创建.venv并安装依赖,否则回退到python3 -m venv - 安装 Node 前端依赖(
npm ci) - 打印启动命令
npm run dev
git clone https://gitcode.com/gh_mirrors/py/pyre-code cd pyre-code ./setup.sh npm run dev跑起来后访问http://localhost:3000,评测服务在http://localhost:8000。
Windows 用户:仓库同样提供了两个对应脚本,setup.ps1(PowerShell)和 setup.bat(CMD),逻辑与setup.sh完全一致:
# PowerShell .\setup.ps1 npm run dev💡 一个容易忽略的细节:启动脚本会优先查找项目内的.venv来运行 Python,找不到才回退到当前 shell 的python。这一逻辑在 scripts/run-python.js 中实现,也是报错 "Python environment not found" 时的排查入口。
方式二:conda 手动部署
如果你已经用 conda 管理 Python 环境(常见于数据科学场景),可以跳过 venv 直接复用 conda,四步完成:
git clone https://gitcode.com/gh_mirrors/py/pyre-code cd pyre-code conda create -n pyre python=3.11 -y && conda activate pyre pip install -e ".[dev]" npm install npm run dev⚠️ 注意两点:
-e ".[dev]"会以可编辑模式安装判题引擎及pytest等开发依赖,改题目代码后无需重装npm run dev前必须保证 conda 环境已激活,否则启动器找不到正确的 Python
方式三:Docker Compose 容器化部署
零 Python、零 Node 依赖,一条命令起服务,最适合服务器或想彻底隔离环境的用户:
git clone https://gitcode.com/gh_mirrors/py/pyre-code cd pyre-code docker compose up --builddocker-compose.yml 定义了grading与web两个服务,值得关注的几个设计:
- 健康检查:
grading容器通过/health接口探活,web会等评测服务健康后才启动,避免端口起来了却连不上后端的窗口期 - 资源限制:
grading容器限制为 3 核 CPU、4G 内存,防止判题任务打满机器 - 数据持久化:进度存在
pyre-data命名卷中,重建容器不丢数据;执行docker compose down -v可彻底重置 - CPU 版 PyTorch:grading.Dockerfile 特意安装 CPU-only 版 torch,镜像体积从约 2GB 降到约 200MB
- 前端多阶段构建:web.Dockerfile 采用 deps → build → production 三阶段,最终以非 root 用户运行 Next.js
构建完成后打开http://localhost:3000即可使用。
三种方式怎么选?对比一览表
| 维度 | setup.sh 一键安装 | conda 手动 | Docker Compose |
|---|---|---|---|
| 部署耗时 | ⭐ 最快(一条脚本) | 中等 | 首次构建较慢 |
| 前置条件 | Python 3.11 + Node 18 | 已装 conda | 只需 Docker |
| 环境隔离 | 项目级.venv | conda 环境 | 完全隔离 |
| 适合场景 | 本机日常练习、开发 | 数据科学工作流 | 服务器、团队共享 |
| 数据重置 | 删除.venv与data/ | 删除 conda 环境 | docker compose down -v |
选择建议:本地学习选setup.sh;已有 conda 环境且希望统一管理选conda;部署到服务器或想保证团队环境一致选Docker Compose。
部署验证与常见问题
部署完成后建议做三个验证:
- 浏览器打开
http://localhost:3000,能看到题目列表 - 访问
http://localhost:8000/health,评测服务返回正常 - 任选一道基础题(如 ReLU)提交代码,能秒级看到逐条测试用例的通过/失败结果
常见问题排查:
| 现象 | 原因与解决 |
|---|---|
ERROR: Python environment not found | .venv不存在且当前 shell 无可用 Python,重新跑一遍 setup 脚本或激活 conda 环境 |
| 前端起来了但提交无反应 | 评测服务(8000 端口)未启动,Docker 下检查grading容器健康状态 |
| 想重置学习进度 | 删除./data/pyre.db,或 Docker 下docker compose down -v |
可选:启用 AI 辅助(AI Help)。复制 web/.env.example 为web/.env,填入AI_HELP_BASE_URL、AI_HELP_API_KEY、AI_HELP_MODEL三个变量即可接入任意 OpenAI 兼容接口;不配置也不影响核心判题功能,用户仍可在页面内自行填写 API key。
总结
Pyre Code 的部署门槛很低:三条路线都能覆盖——
- 🚀setup.sh / setup.ps1:本机练习首选,一键就绪
- 🐍conda:无缝融入现有 Python 工作流
- 🐳Docker Compose:服务器部署与团队协作的最稳方案
搭好环境后,建议从Fundamentals分类的 ReLU、Softmax 开始热身,再沿「Transformer 内部机制 → 从零训练 GPT」的学习路径推进,完整题目与路径说明可查阅 README_CN.md。
- 教育
- 人工智能
- 深度学习
【免费下载链接】pyre-code
A self-hosted ML coding practice platform. 68 problems from ReLU to flow matching — attention, training, RLHF, diffusion, and more. Instant feedback in the browser.
相关推荐
go-admin生产部署完全指南:Docker、docker-compose与Kubernetes三种方案对比
go admin生产部署完全指南:Docker、docker compose与Kubernetes三种方案对比 go admin 是基于 Gin + Vue 的
后端认证鉴权GetQzonehistory:免费导出QQ空间全部历史说说,一次备份6个Excel、网页时间线和图片
GetQzonehistory:免费导出QQ空间全部历史说说,一次备份6个Excel、网页时间线和图片 想找五年前那条 QQ 空间历史说说,多半翻到手指发酸也停
网页爬虫数据分析ArchiveBox 安装完全指南:Docker Compose、uv 与裸金属三种部署方式详解
ArchiveBox 安装完全指南:Docker Compose、uv 与裸金属三种部署方式详解 ArchiveBox 是一款开源的自托管网页存档工具,可将 U
后端数据工程
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考