111 lines
4.0 KiB
Plaintext
111 lines
4.0 KiB
Plaintext
# Sanguo VeighNa Docker 依赖(NAS 容器)
|
||
# 基于 VeighNa 4.4.0,添加 Web 服务所需依赖
|
||
#
|
||
# ⚠️ 版本源 = requirements-lock.txt(三机统一锁文件,VPS 生产快照=权威基线)。
|
||
# 本文件 = lock 的容器子集,全部 == 钉版;lock bump 时必须同步本文件。
|
||
# 容器专属差异(相对 lock 按设计省略):
|
||
# - akshare:日线采集在 VPS,不在容器
|
||
# - pytest/pytest-asyncio:CI 在 Mac runner 跑,不在容器
|
||
# 2026-08-15 钉版根治:原 >= 浮动致容器系统性偏新
|
||
# (TA-Lib0.7.1/empyrical双装/pyarrow25 vs lock 0.6.8/0.5.12/24.0.0),
|
||
# 产生「NAS 绿 ≠ VPS 版本」的等价性窗口。
|
||
|
||
# ============================================
|
||
# VeighNa 核心依赖
|
||
# ============================================
|
||
tzlocal==5.4.4
|
||
PySide6==6.8.2.1
|
||
pyqtgraph==0.14.0
|
||
qdarkstyle==3.2.3
|
||
numpy==2.2.6
|
||
pandas==2.3.3
|
||
TA-Lib==0.6.8
|
||
deap==1.4.4
|
||
pyzmq==27.1.0
|
||
plotly==6.8.0
|
||
tqdm==4.68.3
|
||
loguru==0.7.3
|
||
nbformat==5.10.4
|
||
requests==2.34.2
|
||
qrcode==8.2
|
||
PyYAML==6.0.3
|
||
|
||
# vnpy 策略/数据库扩展(项目必需,非可选)
|
||
# vnpy_ctastrategy: CTA 策略引擎(sanguo_backtest/cta_engine·cta_optimizer·ashare_engine, sanguo_live 等广用)
|
||
# vnpy_sqlite: vnpy sqlite 数据库驱动(vnpy trader/database.py 运行时动态加载,缺则 vnpy 无法持久化)
|
||
vnpy_ctastrategy==1.4.1
|
||
vnpy_sqlite==1.1.3
|
||
|
||
# ============================================
|
||
# 组合策略框架(BulletTrade)—— 2026-08-01 补:此前只在容器层手动装,重建会丢
|
||
# ============================================
|
||
# bullet-trade: 多股票选股组合框架(sanguo_portfolio, 03/01/02 三策略; import 名 bullet_trade)
|
||
# jqdatasdk: bullet_trade import 时默认 provider=jqdata 触发 import jqdatasdk,需可解析
|
||
# (实跑用 LocalUnifiedProvider 不调 jqdata online,但 import 链需要包存在,否则 import 崩)
|
||
bullet-trade==0.9.2
|
||
jqdatasdk==1.9.8
|
||
|
||
# ============================================
|
||
# Web 服务依赖
|
||
# ============================================
|
||
fastapi==0.139.0
|
||
starlette==1.3.1
|
||
uvicorn[standard]==0.49.0
|
||
python-multipart==0.0.32
|
||
python-dotenv==1.2.2
|
||
|
||
websockets==16.0
|
||
|
||
pydantic==2.13.4
|
||
pydantic-settings==2.14.2
|
||
|
||
PyJWT==2.13.0
|
||
python-jose[cryptography]==3.5.0
|
||
passlib==1.7.4
|
||
bcrypt==5.0.0
|
||
|
||
SQLAlchemy==2.0.51
|
||
alembic==1.18.5
|
||
|
||
redis==8.0.1
|
||
aioredis==2.0.1
|
||
|
||
# ============================================
|
||
# Alpha 量化依赖
|
||
# ============================================
|
||
polars[rtcompat]==1.42.1 # 钉版+[rtcompat]:NAS CPU(Synology Celeron)无 AVX2,plain polars 即便 1.42.1 也 SIGILL(exit132);需 [rtcompat] 拉 polars-runtime-compat 兜底。pre-init-rebuild 实证(有 polars-runtime-compat 才跑得通)。勿改回 >=
|
||
scipy==1.15.3
|
||
bottleneck==1.6.0
|
||
# ⚠️ peewee 不可在此钉版:vnpy_sqlite 声明 >=3.17.9,钉 3.17.3(VPS 生产实证版)
|
||
# 会与之互斥致 ResolutionImpossible(2026-08-15 二次构建实证)。主清单由 resolver
|
||
# 装 vnpy_sqlite 满足版,Dockerfile 末步再显式降级 peewee==3.17.3 对齐 VPS。
|
||
alphalens-reloaded==0.4.6
|
||
scikit-learn==1.7.2
|
||
lightgbm==4.6.0
|
||
torch==2.12.1
|
||
pyarrow==24.0.0
|
||
# ⚠️ empyrical-reloaded==0.5.12 不在本文件内装:其元数据伪依赖 peewee<3.17.4 与
|
||
# vnpy_sqlite 的 >=3.17.9 互斥,单一 pip install -r 必 ResolutionImpossible(三机
|
||
# 一直是分次安装掩盖)。empyrical 包体零引用 peewee(实测 grep)。
|
||
# 真依赖 numpy/pandas/scipy/bottleneck 上方已钉;由 Dockerfile 第二步
|
||
# pip install --no-deps empyrical-reloaded==0.5.12 单独装。
|
||
# (替代老 empyrical,根治 0.5.5+0.5.9 双装脏状态)
|
||
statsmodels==0.14.6
|
||
matplotlib==3.10.9
|
||
seaborn==0.13.2
|
||
|
||
# ============================================
|
||
# 工具和监控
|
||
# ============================================
|
||
httpx==0.28.1
|
||
|
||
APScheduler==3.11.3
|
||
|
||
prometheus-client==0.25.0
|
||
structlog==26.1.0
|
||
|
||
# ============================================
|
||
# 数据层(容器内需要的部分)
|
||
# ============================================
|
||
baostock==0.9.3
|