diff --git a/requirements-docker.txt b/requirements-docker.txt index 7d16496..370b422 100644 --- a/requirements-docker.txt +++ b/requirements-docker.txt @@ -1,26 +1,36 @@ -# Sanguo VeighNa Docker 依赖 +# 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.3.1 +tzlocal==5.4.4 PySide6==6.8.2.1 -pyqtgraph>=0.13.7 -qdarkstyle>=3.2.3 -numpy>=2.2.3 -pandas>=2.2.3 -ta-lib>=0.6.4 -deap>=1.4.2 -pyzmq>=26.3.0 -plotly>=6.0.0 -tqdm>=4.67.1 -loguru>=0.7.3 -nbformat>=5.10.4 -requests>=2.32.0 -qrcode>=7.4.2 +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 -# VeighNa 策略/数据库扩展(项目必需,非可选) +# 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 @@ -35,75 +45,58 @@ vnpy_sqlite==1.1.3 bullet-trade==0.9.2 jqdatasdk==1.9.8 -# VeighNa Gateway 扩展(可选,根据需要安装) -# 注意:这些是独立的扩展包,未安装时不影响核心功能 -# vnpy_ctp -# vnpy_ib -# vnpy_okx -# vnpy_binance - # ============================================ # Web 服务依赖 # ============================================ -# FastAPI 核心 -fastapi>=0.100.0 -uvicorn[standard]>=0.23.0 -python-multipart>=0.0.6 +fastapi==0.139.0 +starlette==1.3.1 +uvicorn[standard]==0.49.0 +python-multipart==0.0.32 +python-dotenv==1.2.2 -# WebSocket 支持 -websockets>=12.0 +websockets==16.0 -# 数据验证 -pydantic>=2.0.0 -pydantic-settings>=2.0.0 +pydantic==2.13.4 +pydantic-settings==2.14.2 -# 认证授权 -PyJWT>=2.8.0 -python-jose[cryptography]>=3.3.0 -passlib[bcrypt]>=1.7.4 -python-multipart>=0.0.6 +PyJWT==2.13.0 +python-jose[cryptography]==3.5.0 +passlib==1.7.4 +bcrypt==5.0.0 -# 数据库 -sqlalchemy>=2.0.0 -alembic>=1.12.0 -# SQLite 是 Python 内置的 -# PostgreSQL 支持(可选) -# psycopg2-binary>=2.9.0 +SQLAlchemy==2.0.51 +alembic==1.18.5 -# Redis 客户端 -redis>=5.0.0 -aioredis>=2.0.0 +redis==8.0.1 +aioredis==2.0.1 # ============================================ -# Alpha 量化依赖(可选) +# 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.2 -alphalens-reloaded>=0.4.5 -scikit-learn>=1.6.1 -lightgbm>=4.6.0 -torch>=2.6.0 -pyarrow>=19.0.1 -empyrical>=0.5.5 +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 +alphalens-reloaded==0.4.6 +scikit-learn==1.7.2 +lightgbm==4.6.0 +torch==2.12.1 +pyarrow==24.0.0 +# empyrical-reloaded 替代老 empyrical(根治 0.5.5+0.5.9 双装、import 顺序决定谁生效的脏状态) +empyrical-reloaded==0.5.12 +statsmodels==0.14.6 +matplotlib==3.10.9 +seaborn==0.13.2 # ============================================ # 工具和监控 # ============================================ -# HTTP 客户端 -httpx>=0.25.0 +httpx==0.28.1 -# 任务调度 -apscheduler>=3.10.0 +APScheduler==3.11.3 -# 监控和日志 -prometheus-client>=0.19.0 -structlog>=23.0.0 +prometheus-client==0.25.0 +structlog==26.1.0 # ============================================ -# 开发工具(生产环境可选) +# 数据层(容器内需要的部分) # ============================================ -# pytest>=7.0.0 -# pytest-cov>=4.0.0 -# ruff>=0.1.0 -# mypy>=1.5.0 -baostock +baostock==0.9.3