From f56c519b1d80ed82de87bcd67053fc39a31151d9 Mon Sep 17 00:00:00 2001 From: claude_dev Date: Sat, 4 Jul 2026 07:26:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20VeighNa=20=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E5=8A=A0=E8=BD=BD=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 main_service.py 使用正确的 gateway 导入路径 - 添加 try/except 处理 gateway 导入失败的情况 - 更新 requirements-docker.txt 添加 gateway 包说明 Co-Authored-By: Claude Opus 4.8 (1M context) --- requirements-docker.txt | 7 ++++++ sanguo_web/services/main_service.py | 35 +++++++++++++++++++++-------- 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/requirements-docker.txt b/requirements-docker.txt index e92de64..06601e7 100644 --- a/requirements-docker.txt +++ b/requirements-docker.txt @@ -20,6 +20,13 @@ nbformat>=5.10.4 requests>=2.32.0 qrcode>=7.4.2 +# VeighNa Gateway 扩展(可选,根据需要安装) +# 注意:这些是独立的扩展包,未安装时不影响核心功能 +# vnpy_ctp +# vnpy_ib +# vnpy_okx +# vnpy_binance + # ============================================ # Web 服务依赖 # ============================================ diff --git a/sanguo_web/services/main_service.py b/sanguo_web/services/main_service.py index 7a9e68e..4bc1e82 100644 --- a/sanguo_web/services/main_service.py +++ b/sanguo_web/services/main_service.py @@ -21,10 +21,23 @@ try: ) from vnpy.trader.constant import Exchange, Direction, OrderType, Offset from vnpy.trader.setting import SETTINGS - from vnpy.gateway.ctp import CtpGateway - from vnpy.gateway.ib import IbGateway - from vnpy.gateway.okx import OkxGateway - from vnpy.gateway.binance import BinanceGateway + # Gateway modules are imported as independent packages + try: + from vnpy_ctp import CtpGateway + except ImportError: + CtpGateway = None + try: + from vnpy_ib import IbGateway + except ImportError: + IbGateway = None + try: + from vnpy_okx import OkxGateway + except ImportError: + OkxGateway = None + try: + from vnpy_binance import BinanceGateway + except ImportError: + BinanceGateway = None VNPY_AVAILABLE = True except ImportError: VNPY_AVAILABLE = False @@ -78,11 +91,15 @@ class VeighNaService: # 创建主引擎 main_engine = MainEngine(event_engine) - # 添加网关 - main_engine.add_gateway(CtpGateway) - main_engine.add_gateway(IbGateway) - main_engine.add_gateway(OkxGateway) - main_engine.add_gateway(BinanceGateway) + # 添加网关(仅添加已安装的) + if CtpGateway: + main_engine.add_gateway(CtpGateway) + if IbGateway: + main_engine.add_gateway(IbGateway) + if OkxGateway: + main_engine.add_gateway(OkxGateway) + if BinanceGateway: + main_engine.add_gateway(BinanceGateway) return main_engine, event_engine