mirror of
https://ghfast.top/https://github.com/aeroxw/easy_tdx_max.git
synced 2026-09-12 15:44:18 +08:00
feat(packaging): v1.19.1 支持 Windows 单 EXE 打包 + 系统托盘 + 自动发版
面向零基础老年用户,easy-tdx 可打包成单一 Windows EXE,双击即用。 新增: - 后端同源托管前端 dist(app.py 三级探测:env → _MEIPASS → web-ui/dist) - easy-tdx serve 默认 --open-browser,启动后自动开浏览器 - PyInstaller 打包入口(__main__.py)+ spec 配置(easy_tdx.spec) - 系统托盘(tray.py):右下角图标,右键"打开浏览器/退出" 解决老人不会用任务管理器关闭的问题 - GitHub Actions release.yml:打 v* tag 自动构建并发布 EXE 到 Releases - docs/packaging.md 打包使用文档 修复: - K 线残缺尾记录导致 500(security_bars.py):通达信服务器偶发 ret_count 与 body 长度不匹配,改为 try/except 优雅降级丢弃残缺尾, 返回已解析的完整记录。GetIndexBarsCmd 同改。加 4 个回归测试。 - PyInstaller frozen 模式三个坑: 1. console=False 下 stdout/stderr 为 None → 重定向到日志文件 2. multiprocessing spawn 子进程重新 import __main__ → freeze_support + 子进程检测 3. 系统托盘需主线程消息泵 → uvicorn 挪到后台线程 文档: - README/手册改为三档分流:EXE(零基础)/ Python(一条命令)/ 源码(打包) - 删除 npm run dev / 5173 / 两个终端的过时说明 - 手册补虚拟环境配置 + EXE 打包附录 + EXE 排错 FAQ
This commit is contained in:
@@ -446,30 +446,37 @@ easy-tdx portfolio --stocks SZ:000001,SH:600519 \
|
||||
|
||||
<img src="./docs/web-ui-page-3.png" alt="Web UI 截图 3" />
|
||||
|
||||
不想写命令行?用浏览器。`easy-tdx serve` 启动后端,`web-ui/` 目录跑前端,浏览器打开就是完整的回测可视化界面。
|
||||
不想写命令行?用浏览器。`easy-tdx serve` 一条命令启动,浏览器自动打开 `http://localhost:8000`,就是完整的回测可视化界面。
|
||||
|
||||
**前置条件:**
|
||||
|
||||
```bash
|
||||
# 后端需安装 web 可选依赖(FastAPI + Uvicorn)
|
||||
# 需安装 web 可选依赖(FastAPI + Uvicorn)
|
||||
pip install -e ".[web]"
|
||||
|
||||
# 前端需 Node.js 18+(首次运行需装依赖)
|
||||
cd web-ui && npm install
|
||||
```
|
||||
|
||||
**启动(两个终端):**
|
||||
**启动(一条命令):**
|
||||
|
||||
```bash
|
||||
# 终端 1:启动后端 API 服务(提供行情数据 + 回测计算)
|
||||
easy-tdx serve --port 8000
|
||||
# 启动后端 + 自动打开浏览器(默认 http://localhost:8000)
|
||||
easy-tdx serve
|
||||
|
||||
# 终端 2:启动前端开发服务器(web-ui/ 目录)
|
||||
cd web-ui && npm run dev
|
||||
# 浏览器打开 http://localhost:5173
|
||||
# 自定义端口/不自动开浏览器
|
||||
easy-tdx serve --port 8080 --no-open-browser
|
||||
```
|
||||
|
||||
> 前端开发服务器通过 Vite proxy 把 `/api` 请求转发到后端 `127.0.0.1:8000`,无需处理跨域。后端行情连接失败时回测路由仍可用(用内联数据),但取行情功能需要后端连通通达信服务器。
|
||||
> 后端启动后约 1-2 秒会自动弹出浏览器。前端界面已编译进 `web-ui/dist/`,由后端同源托管,无需单独跑前端开发服务器。后端行情连接失败时回测路由仍可用(用内联数据),但取行情功能需要后端连通通达信服务器。
|
||||
|
||||
**不想装 Python?下载 EXE 直接用(面向零基础用户):**
|
||||
|
||||
Windows 用户可以下载打包好的单一 EXE(约 80-150MB),双击即可使用,无需安装 Python/Node 或任何依赖:
|
||||
|
||||
1. 到 [Releases 页面](../../releases) 下载最新的 `easy-tdx-<版本>-windows.exe`
|
||||
2. 双击运行(首次会被 SmartScreen 拦截,点"更多信息 → 仍要运行")
|
||||
3. 等待 2-5 秒,浏览器自动打开回测界面
|
||||
4. 右下角任务栏出现小图标,右键 → "退出" 可关闭
|
||||
|
||||
EXE 打包方法见 [`docs/packaging.md`](./docs/packaging.md)。
|
||||
|
||||
打开浏览器后,顶部导航栏有五个页面:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user