FinDataHub
21606708d0
ci(windows): 实测 akshare 可行性,推翻「硬阻塞点」假设
## 假设被推翻
迁移计划曾把 akshare 的 py_mini_racer(62MB V8 预编译)列为「唯一硬阻塞点」,
理由是 Windows + cp312 是否有 wheel 未验证。
2026-10-26 用 uv 做离线解析(无需 Windows 机器):
uv pip install --python-platform windows --python-version 3.12 --dry-run akshare
→ 解析成功,mini-racer==0.14.1,与本机 macOS 上的版本完全一致
→ pandas/numpy 仅小版本差异(3.1.0/2.5.4 vs 本机 3.0.3/2.4.6)
## 但「能装」不等于「能跑」
V8 原生库在 win32 上能否真正加载并执行 JS 必须实测。故选在观察期的
windows job 里加三步实测(各自 continue-on-error,避免装不上时中断后续步骤):
1. 安装 akshare
2. 验证 py_mini_racer 可执行 JS(ctx.eval('1+1') == 2)
3. 跑 Services/akshare_fetcher/tests
## 一个必须写死的命名陷阱
PyPI 包名是 mini-racer,但**顶层模块名仍是 py_mini_racer**
(akshare 源码里全是 import py_mini_racer)。写成 import mini_racer 会
ModuleNotFoundError,从而误判为「Windows 装不上」。
本机已验证正确写法:import py_mini_racer → ctx.eval('1+1') == 2,
akshare 1.18.64 及其依赖 mini-racer 的模块均可正常导入。
首次 CI 反馈后:若三步全绿,可去掉 continue-on-error,并考虑把 tushare
一并纳入 Windows 范围。