Files
sanguo_vnpy_v2/requirements-docker.txt
T

111 lines
4.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Sanguo VeighNa Docker 依赖(NAS 容器)
# 基于 VeighNa 4.4.0,添加 Web 服务所需依赖
#
# ⚠️ 版本源 = requirements-lock.txt(三机统一锁文件,VPS 生产快照=权威基线)。
# 本文件 = lock 的容器子集,全部 == 钉版;lock bump 时必须同步本文件。
# 容器专属差异(相对 lock 按设计省略):
# - akshare:日线采集在 VPS,不在容器
# - pytest/pytest-asyncioCI 在 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.3VPS 生产实证版)
# 会与之互斥致 ResolutionImpossible2026-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