From 1674c0db56047211d257a02317b58f4160c7004c Mon Sep 17 00:00:00 2001 From: Jason_hu <63170682@qq.com> Date: Wed, 18 Mar 2026 13:55:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=20xqshare=20?= =?UTF-8?q?=E8=BF=9C=E7=A8=8B=E5=90=8E=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 XQSHARE_REMOTE_HOST 环境变量检测 - 配置环境变量时使用 xqshare 远程连接 xtquant - 未配置时保持原有本地 xtquant 或 Mock 模式 - 支持 Mac/Linux 上通过 xqshare 运行 关闭 #7 --- src/xtquantai/server.py | 49 ++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/src/xtquantai/server.py b/src/xtquantai/server.py index fd0673b..5dae762 100644 --- a/src/xtquantai/server.py +++ b/src/xtquantai/server.py @@ -35,24 +35,37 @@ UIPanel = None try: - from xtquant import xtdata - print(f"成功导入xtquant模块,路径: {xtdata.__file__ if hasattr(xtdata, '__file__') else '未知'}") - - # 尝试导入UIPanel,如果不存在则创建一个模拟的UIPanel类 - try: - from xtquant.xtdata import UIPanel - print("成功导入UIPanel类") - except ImportError as e: - print(f"警告: 无法导入UIPanel类: {str(e)}") - # 创建一个模拟的UIPanel类 - class UIPanel: - def __init__(self, stock, period, figures=None): - self.stock = stock - self.period = period - self.figures = figures or [] - - def __str__(self): - return f"UIPanel(stock={self.stock}, period={self.period}, figures={self.figures})" + # 如果配置了 xqshare 环境变量,使用 xqshare 远程后端 + if os.environ.get("XQSHARE_REMOTE_HOST"): + from xqshare import connect, xtdata + connect() + print("使用 xqshare 远程后端") + # 尝试导入 UIPanel + try: + from xqshare import xtview + UIPanel = xtview.UIPanel + print("成功导入 UIPanel (from xqshare.xtview)") + except (ImportError, AttributeError): + print("警告: xqshare 中无 UIPanel,UI 面板功能不可用") + else: + from xtquant import xtdata + print(f"成功导入xtquant模块,路径: {xtdata.__file__ if hasattr(xtdata, '__file__') else '未知'}") + + # 尝试导入UIPanel,如果不存在则创建一个模拟的UIPanel类 + try: + from xtquant.xtdata import UIPanel + print("成功导入UIPanel类") + except ImportError as e: + print(f"警告: 无法导入UIPanel类: {str(e)}") + # 创建一个模拟的UIPanel类 + class UIPanel: + def __init__(self, stock, period, figures=None): + self.stock = stock + self.period = period + self.figures = figures or [] + + def __str__(self): + return f"UIPanel(stock={self.stock}, period={self.period}, figures={self.figures})" except ImportError as e: print(f"警告: 无法导入xtquant模块: {str(e)}") print("Python搜索路径:")