ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Pyre Code部署全指南:setup.sh一键安装、conda与Docker Compose三种方式对比

Pyre Code部署全指南:setup.sh一键安装、conda与Docker Compose三种方式对比
  • 教育
  • 人工智能
  • 深度学习

【免费下载链接】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.

项目地址:https://gitcode.com/gh_mirrors/py/pyre-code
点击查看免费下载

Pyre Code是一个自托管的 ML 编码练习平台,内置 76 道从 ReLU 到 flow matching 的 PyTorch 实现题,浏览器内编写、本地判题、秒级反馈。本文带你用setup.sh 一键安装、conda 手动部署、Docker Compose 容器化部署三种方式快速搭建,并附完整对比,帮你 5 分钟内跑起自己的判题环境。

部署前先看:Pyre Code 的架构与端口

部署 Pyre Code 前,先了解它由哪几部分组成,遇到问题时才知道往哪里查:

层级组件说明对应位置
前端Next.js + Monaco 编辑器浏览器代码编辑器与题目页面,端口3000web/
后端FastAPI 评测服务接收提交、调度判题,端口8000grading_service/main.py
判题引擎torch_judge76 道题目定义与测试用例执行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 的完整流程是:

  1. 检测系统是否安装了uv,有则优先用uv创建.venv并安装依赖,否则回退到python3 -m venv
  2. 安装 Node 前端依赖(npm ci)
  3. 打印启动命令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 --build

docker-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
环境隔离项目级.venvconda 环境完全隔离
适合场景本机日常练习、开发数据科学工作流服务器、团队共享
数据重置删除.venv与data/删除 conda 环境docker compose down -v

选择建议:本地学习选setup.sh;已有 conda 环境且希望统一管理选conda;部署到服务器或想保证团队环境一致选Docker Compose。

部署验证与常见问题

部署完成后建议做三个验证:

  1. 浏览器打开http://localhost:3000,能看到题目列表
  2. 访问http://localhost:8000/health,评测服务返回正常
  3. 任选一道基础题(如 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.

项目地址:https://gitcode.com/gh_mirrors/py/pyre-code
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进