
Eigent server v0.0.89 域驱动重构后怎么升级重新构建镜像并处理 ModuleNotFoundError【免费下载链接】eigentEigent: The Open Source Cowork Desktop - Local and Free Alternative to Claude Cowork and Codex项目地址: https://gitcode.com/GitHub_Trending/ei/eigentEigent 的 server 端在 v0.0.89PR #1509把代码从扁平目录结构重构成了领域驱动架构domain-driven。这次重构只改了 Python 源码的目录组织API 接口和数据库表结构都没有变但它对本地部署是一个 breaking change如果你还运行着旧代码或旧镜像server 会因为 import 路径已经变化而无法启动典型报错就是ModuleNotFoundError: No module named app.component。这篇文章针对的就是这个升级场景升级后让本地 server 重新正常启动数据不受影响。重构改了什么目录对照升级前先看一遍目录变更方便判断自己是不是受影响的部署方式。对照表来自 server-refactor-v1.md重构前重构后说明app/component/app/core/基础设施数据库、加密、celery 等app/controller/app/domains/*/api/按领域分组的 API 控制器app/service/app/domains/*/service/按领域分组的业务逻辑app/exception/app/shared/exception/异常处理app/type/app/shared/types/共享类型定义(新增)app/shared/auth/认证与授权(新增)app/shared/middleware/CORS、限流、Trace ID(新增)app/shared/http/HTTP 客户端工具(新增)app/shared/logging/日志与敏感信息过滤每个领域chat、config、mcp、model_provider、oauth、trigger、user内部都遵循api/路由处理、service/业务逻辑、schema/请求/响应模型的统一结构。Docker 部署必须带 --build 重新构建镜像如果你用 docker-compose 部署 server升级只有一条命令但--build参数不能省cd server docker-compose up --build -dserver-refactor-v1_CN.md 明确指出必须加--build重新构建镜像。直接执行docker-compose up -d会复用本地缓存的旧镜像容器起来后照样因 import 路径失效而启动失败等于升级没生效。这条命令的副作用是重新构建server/Dockerfile的镜像并重启 compose 定义中的容器API、PostgreSQL、Redis、Celery worker、Celery beat定义见 docker-compose.yml。数据库卷不随镜像重建数据保留在 Docker 卷server_postgres_data的/var/lib/postgresql/data中。非 Docker 部署停进程、拉代码、重启如果你没有走 Docker而是通过start_server.sh或uv run uvicorn直接运行 server升级步骤是停止正在运行的 server 进程拉取最新代码重新启动 server。启动方式二选一# 方式一使用 start_server.sh cd server ./start_server.sh # 方式二直接运行 uvicorn cd server uv run uvicorn main:api --reload --port 3001 --host 0.0.0.0关于 start_server.sh 需要知道的副作用执行前请先确认它要求当前目录是server/目录会检查pyproject.toml是否存在否则直接退出如果系统没有uv脚本会自动从https://astral.sh/uv/install.sh下载安装 uv 到本机依次执行uv sync安装依赖、pybabel国际化提取/编译、alembic upgrade head数据库迁移启动 Celery worker、Celery beat 和 FastAPI 服务端口 3001日志提示按 CtrlC 停止全部服务。方式二只启动 API 服务本身不启动 Celery 进程需要 Celery 时再用uv run celery -A app.core.celery worker --loglevelinfo等命令单独拉起。Electron 桌面应用重启即可如果 Eigent 是以桌面应用形式安装运行的升级 server 不需要单独操作重启应用即可server 会随应用自动重启。升级后如何确认启动成功Docker 部署# 确认容器在运行 docker ps # 查看 API 容器日志 docker logs -f eigent_api | cateigent_api容器自带健康检查对容器内http://localhost:5678/health发curl -f配置见 docker-compose.yml 第 72-77 行start_period: 40s容器状态稳定为 healthy 说明服务已就绪。API 在宿主机映射的端口是3001→ 容器5678。非 Docker 部署uvicorn 启动后服务监听http://localhost:3001浏览器打开http://localhost:3001/docsSwagger UI能访问即说明 FastAPI 服务已正常提供接口。/health端点定义在 main.py可用于容器外的健康探测。仍然报 ModuleNotFoundError 时怎么办文档给出的判断很直接如果启动或运行中出现ModuleNotFoundError: No module named app.component说明你正在运行的是旧版 server 二进制或旧镜像按上述对应部署方式的升级步骤重新执行一次——Docker 用户重点检查是否漏掉了--build。两个相关的升级事实来自文档 FAQ数据不会丢失数据库卷和表结构未受影响只是 Python 源码目录结构发生了变化不需要重跑数据库迁移本次改动没有新增数据库迁移Docker 场景下容器启动时 Alembic 仍会照常执行属于自动行为。升级完成后server 对外暴露的接口路径与之前一致客户端和触发器配置不需要改动。【免费下载链接】eigentEigent: The Open Source Cowork Desktop - Local and Free Alternative to Claude Cowork and Codex项目地址: https://gitcode.com/GitHub_Trending/ei/eigent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考