diff --git a/README.md b/README.md index 65f2e6b..0b66cc8 100644 --- a/README.md +++ b/README.md @@ -114,11 +114,12 @@ bash stop.sh # 停止服务 - **独立部署**:与 Sage 解耦,通过 HTTP API 对外提供服务 ### Nuitka 二进制化(生产部署形态,2026-09-17 立项并验证) -- 构建:`bash scripts/build_binary.sh [输出目录]`(在测试机跑;产出 overlay:逐模块 .so 保包目录结构 + 包内数据文件 + BUILD_INFO.json 逐仓哈希 + `_appbin/run_compiled.py` runner)。 +- 构建:`bash scripts/build_binary.sh [输出目录]`(在测试机跑;产出 overlay:逐模块 .so 保包目录结构 + 包内数据文件 + BUILD_INFO.json 逐仓哈希 + `_runners/run_compiled.py`、`_runners/run_accounting_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 副本。 +- 入口 .so 放 overlay **顶层**(入口模块 `root_dir = dirname(dirname(__file__))` 语义:虚拟 __file__ 上两级须为应用根);overlay/app/ 放副本服务 `from app.xxx import` 命名空间包引用。 +- 运行:`py3/bin/python /_runners/run_compiled.py -p -w `;start.sh 开关 `conf/compiled_mode` 文件存在即编译态、删除即回退源码态(web/worker/accounting 三入口共用)。 - 数据文件(.dspy/.ui/.json/.tmpl/wwwroot)不进二进制,随包目录原样部署;.git 仓库仍保留(deploy/ 工具、迁移台账、技能树、哈希对账都依赖)。 -- 验证记录(测试机 2026-09-17):overlay 399 .so / 149M;编译态 9199 端口起服务 health 200、登录/菜单/待办/商城全 200,与源码态 9090 逐路径对照一致;进程 maps 1341 个 overlay .so 映射。 +- 验证记录(2026-09-17):测试机 overlay 409 .so/156M,编译态 worker4 实例 health 200 与源码态逐路径对照一致;生产 5 进程全编译态(maps 1314/1341 个 overlay .so),启动窗口零错误、poller 18、accounting 出账循环启动、冒烟 14/14、真浏览器登录+产线/待办/商城全 200。 ## 文件统计