c66f7cb14e
依据: - vnpy 4.4.0 pyproject: numpy>=2.2.3 / pandas>=2.2.3(均无上限,不钉<3) - pandas 目标=2.3.3(2.x 稳定线顶端,3.0 破坏性变更未回归,按稳定优先不采用) - numpy 目标=2.2.6(与 TA-Lib 0.6.8 在 NAS 生产容器实证兼容) - 其余依赖==钉到 NAS 容器已验证可跑版本(fastapi 0.139/uvicorn 0.49/polars 1.42 等) - Python 3.10 三机统一基线(xtquant 限 3.6-3.12,VPS 锁 3.10) - 不含 vnpy(源码引用)/ xtquant(VPS Windows only)/ CUDA(torch 传递依赖) - 矩阵文档新增「锁定决策(2026-07-15)」小节:依据+迁移步骤+验证前置 - 验证前置:落生产前须全套 pytest 0 回归 + 一个 CTA 回测冒烟
105 lines
3.8 KiB
Plaintext
105 lines
3.8 KiB
Plaintext
# ============================================================================
|
||
# sanguo_vnpy_v2 三机统一依赖锁文件(Python 3.10 基线)
|
||
# ============================================================================
|
||
# 创建:2026-07-15。单一基线,三机(Mac 开发 / NAS 容器 / Windows VPS)共享。
|
||
#
|
||
# 目标版本决策依据(详见 docs/deployment/env-version-matrix.md §「锁定决策」):
|
||
# - vnpy 4.4.0 pyproject.toml: numpy>=2.2.3 / pandas>=2.2.3(均无上限,不钉 <3)
|
||
# - pandas 目标 = 2.3.3(2.x 稳定线顶端)。pandas 3.0 有大量破坏性变更且未经
|
||
# vnpy 4.4.0 源码回归,按「稳定优先」暂不采用,留作未来验证后再升。
|
||
# - numpy 目标 = 2.2.6(2.2.x 最新稳定,与 TA-Lib 0.6.8 在 NAS 生产容器实证兼容)
|
||
# - 其余依赖取 NAS 生产容器「已验证可跑」的版本(pandas 2.3.3 / numpy 2.2.6 那套)
|
||
#
|
||
# 不含(按设计):
|
||
# - vnpy:源码引用(sys.path.insert),不 pip install,故不入 lock
|
||
# - xtquant:VPS/Windows 专属(miniQMT),跨平台不兼容,不入共享 lock
|
||
# - CUDA/nvidia-*:torch 的平台相关传递依赖,随 torch 自动解析,不入 lock
|
||
# - 纯传递依赖(contourpy/cffi/certifi 等):由解析器依直接依赖自动钉版
|
||
#
|
||
# 验证前置(lockfile 落生产前必须通过):
|
||
# 1. 测试环境按本文件 pip install -r 后跑全套 pytest(0 回归)
|
||
# 2. 至少一个 CTA 回测冒烟(确认 vnpy 源码 + TA-Lib + pandas/numpy 协同无回归)
|
||
# ============================================================================
|
||
|
||
# ============================================
|
||
# 生产核心(runtime + vnpy 扩展包)
|
||
# ============================================
|
||
# 数值/数据栈(关键 major 锁定,禁止擅自跨 major)
|
||
numpy==2.2.6
|
||
pandas==2.3.3
|
||
TA-Lib==0.6.8
|
||
|
||
# vnpy 4.4.0 扩展包(vnpy 本体源码引用,不列)
|
||
vnpy_ctastrategy==1.4.1
|
||
vnpy_sqlite==1.1.3
|
||
|
||
# vnpy 核心依赖(与 vnpy_v4.4.0/pyproject.toml 对齐,钉到 NAS 实证版本)
|
||
pyzmq==27.1.0
|
||
deap==1.4.4
|
||
plotly==6.8.0
|
||
pyqtgraph==0.14.0
|
||
qdarkstyle==3.2.3
|
||
PySide6==6.8.2.1
|
||
tzlocal==5.4.4
|
||
loguru==0.7.3
|
||
tqdm==4.68.3
|
||
nbformat==5.10.4
|
||
requests==2.34.2
|
||
qrcode==8.2
|
||
PyYAML==6.0.3
|
||
|
||
# ============================================
|
||
# 数据层(采集 / 数据平台)
|
||
# ============================================
|
||
polars==1.42.1
|
||
pyarrow==24.0.0
|
||
baostock==0.9.3
|
||
# akshare:日线采集走 NAS 宿主 python(不在容器内),此处钉最新稳定;
|
||
# 发版频繁,定期 bump。参考:https://pypi.org/project/akshare/
|
||
akshare==1.18.64
|
||
scipy==1.15.3
|
||
|
||
# ============================================
|
||
# Web 服务(sanguo_api / bridge client)
|
||
# ============================================
|
||
fastapi==0.139.0
|
||
uvicorn==0.49.0 # 安装用 uvicorn[standard]==0.49.0(含 uvloop/httptools/watchfiles)
|
||
starlette==1.3.1
|
||
pydantic==2.13.4
|
||
pydantic-settings==2.14.2
|
||
python-multipart==0.0.32
|
||
PyJWT==2.13.0
|
||
bcrypt==5.0.0
|
||
python-jose==3.5.0
|
||
passlib==1.7.4
|
||
SQLAlchemy==2.0.51
|
||
alembic==1.18.5
|
||
redis==8.0.1
|
||
aioredis==2.0.1
|
||
APScheduler==3.11.3
|
||
httpx==0.28.1
|
||
websockets==16.0
|
||
structlog==26.1.0
|
||
prometheus-client==0.25.0
|
||
python-dotenv==1.2.2
|
||
|
||
# ============================================
|
||
# 测试 / 开发工具
|
||
# ============================================
|
||
pytest==9.1.1
|
||
pytest-asyncio==1.4.0
|
||
|
||
# ============================================
|
||
# 可选:Alpha 量化(重 ML 依赖,按需安装,-headless/CI 可省)
|
||
# 安装方式:pip install -r requirements-lock.txt 时含本段;
|
||
# 仅生产核心可手动截断本段之后。torch 会拉入平台相关 CUDA 包。
|
||
# ============================================
|
||
scikit-learn==1.7.2
|
||
lightgbm==4.6.0
|
||
torch==2.12.1
|
||
alphalens-reloaded==0.4.6
|
||
empyrical-reloaded==0.5.12
|
||
statsmodels==0.14.6
|
||
matplotlib==3.10.9
|
||
seaborn==0.13.2
|