diff --git a/README.md b/README.md index 599706f..65f2e6b 100644 --- a/README.md +++ b/README.md @@ -113,6 +113,13 @@ bash stop.sh # 停止服务 - **dspy 规范**:零 import、零 print、零 uuid,使用预加载全局函数 - **独立部署**:与 Sage 解耦,通过 HTTP API 对外提供服务 +### Nuitka 二进制化(生产部署形态,2026-09-17 立项并验证) +- 构建:`bash scripts/build_binary.sh [输出目录]`(在测试机跑;产出 overlay:逐模块 .so 保包目录结构 + 包内数据文件 + BUILD_INFO.json 逐仓哈希 + `_appbin/run_compiled.py` runner)。 +- 编译形态实测定型:逐模块 `--module`(整包单 .so 会断 importlib 动态导入子模块);`__init__.py` 用改名 trick(副本名=目录名,编译后 mv 成 `__init__..so`);源码态语法坏死文件(零引用死文件)py_compile 预门跳过;`.bak/.old` 排除;增量跳过(产物新于源码不重编)。 +- 运行:`py3/bin/python /_appbin/run_compiled.py -p -w `;sys.path 顺序 _appbin > overlay 根(遮蔽 site-packages 源码);`app/` 是命名空间包(无 __init__),overlay/app/ 放 .so 副本。 +- 数据文件(.dspy/.ui/.json/.tmpl/wwwroot)不进二进制,随包目录原样部署;.git 仓库仍保留(deploy/ 工具、迁移台账、技能树、哈希对账都依赖)。 +- 验证记录(测试机 2026-09-17):overlay 399 .so / 149M;编译态 9199 端口起服务 health 200、登录/菜单/待办/商城全 200,与源码态 9090 逐路径对照一致;进程 maps 1341 个 overlay .so 映射。 + ## 文件统计 - 数据表:6 张(core 3 + ops 3)