ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

Label Studio 源码开发环境:5 步搭好一个热重载调试闭环

Label Studio 源码开发环境:5 步搭好一个热重载调试闭环 Label Studio 源码开发环境5 步搭好一个热重载调试闭环【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio搭完之后浏览器打开http://localhost:8080你会看到 Label Studio 的项目列表和数据管理页面标注编辑器、工具栏、右侧标注面板完整渲染更关键的是此后你每保存一次前端代码页面会在 1 秒内自动更新不需要手动刷新。本文解决从零搭建 Label Studio 开发环境的全部问题克隆源码、跑起 Django 后端、接上 Vite 前端开发服务器并开启热模块替换HMR。开工前环境核对清单完成这一步后你应该看到每条检查命令都打出版本号终端里没有任何command not found。Label Studio 是前后端分离的双栈项目后端是 Django Python前端是 React Vite。Python 侧用uv管理依赖根目录Makefile里的命令都是uv run起的前端用bun。要准备的东西如下项目要求检查命令系统Linux / macOSWindows 用 WSL2—Python≥ 3.10 4python3 --versionNode.js≥ 18用于安装 bunnode -vuv任意较新版本uv --versionbun任意较新版本bun -v如果uv或bun缺失各装一下预期结果两条命令随后都能打印版本号pip install uv npm i -g bunPython 版本是硬约束pyproject.toml里声明了requires-python 3.10,4低于 3.10 会导致依赖解析直接失败。后端先跑起来完成这一步后你应该看到终端出现 Django 启动信息浏览器访问http://localhost:8080有响应——此时页面可能是空壳或维护提示这很正常前端还没接上。克隆 Label Studio 源码仓库拉取代码并进入目录预期结果本地多出一个label-studio目录git clone https://gitcode.com/GitHub_Trending/la/label-studio cd label-studio安装 Python 依赖并执行数据库迁移uv sync会在根目录创建.venv并按锁文件安装全部 Python 依赖预期结果出现安装进度最后无报错make migrate-dev用内置的 SQLite 配置执行迁移预期结果终端逐条打印应用了的 App 迁移uv sync make migrate-dev开发默认走 SQLite不需要装 PostgreSQL——Makefile里的*-dev目标已经替你带上了DJANGO_DBsqlite等环境变量。启动 Django 开发服务器用 Makefile 里现成的目标启动预期结果Django 监听 8080 端口终端开始打印请求日志make run-dev到这里后端就齐了页面、API、数据都从 8080 这个进程走。接上前端打开热重载完成这一步后你应该看到终端出现 Vite 监听 8010 的提示浏览器里 8080 的页面终于完整渲染——编辑器、数据管理、登录页全部就位。为什么会有两个端口8080 是 Django负责页面壳和全部 API8010 是 Vite 开发服务器负责前端资源和 HMR 连接。Vite 配置里已把/api、/static代理到 8080见web/vite.config.ts所以浏览器始终只访问 8080跨域不用你操心。创建根目录 .env 并开启 HMR热重载的开关就一行FRONTEND_HMRtrue两个地址也顺手写明方便日后改端口。在项目根目录创建.env预期结果文件里只有 3 行内容cat .env EOF FRONTEND_HMRtrue FRONTEND_HOSTNAMEhttp://localhost:8010 DJANGO_HOSTNAMEhttp://localhost:8080 EOF⚠️FRONTEND_HMR是 Django 启动时读的变量。如果后端已经在跑先按 CtrlC 停掉再重新make run-dev否则 HMR 不会生效。安装前端依赖用 Makefile 目标安装前端依赖预期结果web/node_modules被填充无 peer 依赖报错make frontend-install启动 8010 的 Vite 开发服务器启动前端开发服务器预期结果终端出现 Vite listening on 8010 的提示和本地地址make frontend-dev回到http://localhost:8080现在应该能看到带任务、缩略图和 Import / Export / Label 按钮行的数据管理页验证改一行代码页面自己变完成这一步后你应该看到文件一保存浏览器在 1 秒内自动更新且没有整页刷新的闪动。先认一下代码放在哪。仓库大致分两半label_studio/是 Django 后端入口是label_studio/manage.py核心配置在label_studio/core/web/是前端内部又分三块——web/apps/labelstudio/主应用页面壳和路由web/libs/editor/标注编辑器画布、右侧标注组件都在这里web/libs/datamanager/任务列表和数据管理页面对应关系记成口诀改libs/editor标注编辑器区域动改libs/datamanager数据管理页动改label_studio/API 和后端逻辑变Python 没有 HMR但 Django 开发服务器会自动重启手动刷新即可。动手验证挑web/libs/editor/src/components/下任意组件里的一段可见文案改掉保存。 HMR 生效的话编辑器对应位置的文字会立刻变化。如果页面没动直接去下面那张表对照。卡住了对照这张表对照这张表你应该能把终端或页面的现状对到现象一列执行处理列的命令后对应服务恢复正常。现象可能原因处理命令8080 页面一直是空壳或维护提示前端开发服务器没启动make frontend-dev改了代码页面不自动刷新.env缺FRONTEND_HMRtrue或后端没重启检查.env后 CtrlC重跑make run-dev页面能开但 API 报 404 / 跨域错误前后端端口配置不一致核对.env里的FRONTEND_HOSTNAME与DJANGO_HOSTNAMEuv sync报依赖解析失败Python 版本低于 3.10python3 --version确认升级后重试提示 8080 端口已被占用上一个进程没退干净lsof -i:8080找到 PID 后结束该进程bun: command not foundbun 未安装npm i -g bun下一步完成这一节后你应该拥有一个可以在 IDE 里打断点跑runserver的调试入口。在根目录放一份.vscode/launch.json关键行如下比盯终端日志直观得多{ version: 0.2.0, configurations: [ { name: Django: runserver, type: debugpy, request: launch, program: ${workspaceFolder}/label_studio/manage.py, args: [runserver], django: true, env: { DJANGO_DB: sqlite } } ] }其余安装与部署主题见仓库内的官方安装指南。【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表