LumiBot / 安装实测
LumiBot 安装与依赖体量:PyPI 装到 4.5.91,README 让你装 4.5.92
LumiBot 有 PyPI 包,所以安装本身不是问题;问题是你会装到哪一版。pip install lumibot 拿到的是 PyPI 最新发行版 4.5.91(2026-09-06 上传,只提供 wheel,无 sdist);而仓库 dev 分支的 setup.py 里版本号已经写成 4.5.92,README 的 AI 快速上手也是直接从仓库分支安装——因为那一版当时还没有发到 PyPI。
第二个问题是体量。这个包的依赖清单有 50 条,横跨数据源 SDK、券商 SDK、AI agent 栈(Google ADK / LiteLLM / MCP)、存储与查询(DuckDB / PyArrow / SQLAlchemy),单个包最大文件体积从 5 MB 到 50 MB 不等。本站把体积、轮子标签与两个真实卡点逐条列了出来。
第三个问题是诚实边界,而这一页有实测结论可给:在全新的 Python 3.11 虚拟环境里执行 pip install lumibot,7.6 秒就在依赖解析阶段失败并退出——卡点不是 LumiBot 自己(--no-deps 单独装它 exit=0),而是它硬钉住的 ibapi==9.81.1.post1:这个包在 PyPI 上只有源码包,且它的 sdist 在当前 pip / setuptools 下连元数据都生成不出来。下面把每一步的命令、退出码与原文错误都列出来,你可以自己复现。
- 本机:Windows + Python
3.11.9(EasyClaw 自带运行时) - PyPI:
lumibot 4.5.91,wheellumibot-4.5.91-py3-none-any.whl,37,810,900 字节 - 仓库:
dev分支setup.py的version = "4.5.92"(PyPI 上不存在) - 端到端安装实测:采集时仍在进行,本文不下结论
- 采集日期 2026-09-22;本站未实盘下单,不做收益声明
pip install lumibot → 4.5.91,2026-09-06 上传git+…@version/4.5.92,README 的 AI 快速上手用这条setup.py、requirements.txt,2026-09-22 采集)。示意图只重述这些出处的事实;安装结果以你自己的环境为准。装 4.5.91 还是装 4.5.92?先看这张对照表
两条路径都是官方给的,但它们的交付方式、可复现性和适用场景都不一样。选错不会报错,只会在你按 README 跑 AI 示例时才发现版本对不上。
| 对照项 | PyPI 发行版 4.5.91 | 仓库分支 4.5.92 | 注意点 |
|---|---|---|---|
| 安装命令 | pip install lumibot | pip install "git+https://github.com/Lumiwealth/lumibot.git@version/4.5.92" | 第二条命令来自 README「Run your first AI backtest」,不是本站自造写法 |
| 版本号来源 | PyPI 发行版记录 | 仓库 setup.py 的 version= 字段 | 两者不一致:PyPI 的发行版键集合里没有 4.5.92 |
| 时间点 | 2026-09-06T21:16:02Z 上传 | version/4.5.92 分支 HEAD c28161f8,2026-09-21 | 分支会继续移动;要复现就得记下 commit |
| 交付物形态 | 只有 wheel:lumibot-4.5.91-py3-none-any.whl,37,810,900 字节;无 sdist | 源码(从 Git 仓库构建安装) | 没有 sdist 意味着你无法只下载源码包离线安装,必须走 wheel 或 Git |
| 适用场景 | 传统规则策略的回测、长期自托管 | 跑 README 的 AI agent 示例、跟进未发行修复 | 先跑通回测再决定要不要切分支,是成本最低的顺序 |
| 可复现性 | 版本号固定,任何机器一致 | 需要自己记录 commit 才能复现 | 切换前把当前 pip show lumibot 的版本与分支 commit 都记下来 |
| 许可元数据口径 | wheel 内 METADATA 写 License: MIT | setup.py 写 license="GPL-3.0" | 同一项目两套许可口径,详见许可与商业边界;本站不提供法律意见 |
| 发行版总量 | PyPI 上累计 640 个发行版 | — | 高频发布说明维护活跃,也说明版本号会频繁变化,不必追新 |
# 路径 A:PyPI 最新发行版(拿到 4.5.91) python -m pip install lumibot # 路径 B:README 指定的仓库分支(AI 快速上手用这条) python -m pip install "git+https://github.com/Lumiwealth/lumibot.git@version/4.5.92"
Python 版本、操作系统与那些「未注明」的项
官方对 Python 版本有明确下限,但对操作系统与编译工具链没有逐项承诺。下面把「官方写明」和「本站未实测」分开列。
| 要求项 | 具体值 | 出处 | 注意点 |
|---|---|---|---|
| Python 最低版本 | >=3.10 | 仓库 setup.py 的 python_requires、PyPI 元数据、README 均一致 | 三处口径一致,这一条可以放心依赖 |
| 官方声明支持的版本 | 3.10 / 3.11 / 3.12 | wheel 内 METADATA 的 classifiers 只列这三个 | 没有 3.13;「能跑」和「被官方列名」是两件事 |
| 3.13 相关分支状态 | 3.13-support(2024-12-09)、3.13-fix(2024-12-17) | GitHub 分支列表与单分支 commit 查询 | 两个分支都停在 2024 年,本站在此只陈述时间,不替官方判断 3.13 支持状态 |
| 操作系统 | classifiers 写 OS Independent | wheel 内 METADATA | 本站只在 Windows + Python 3.11.9 上做过依赖探测,Linux / macOS 未逐项实测 |
| 是否需要本地编译工具链 | 取决于依赖里有没有源码包 | 本机对 50 条依赖逐包查 PyPI 得到的轮子标签 | 已知 ibapi==9.81.1.post1 只有源码包;Windows 上缺构建工具时的表现属推断,未实测 |
| 磁盘占用 | 官方未注明 | — | 本站只取到「单个包最大文件体积」,不等于安装后占用,因此不给总量数字 |
| 网络环境 | 官方未注明 | — | 依赖数量多、体积大,境内网络可能需要配镜像源;本站未实测速度 |
| 虚拟环境 | 官方未强制 | 仓库贡献指南建议用 pip install -r requirements_dev.txt && pip install -e . 做开发安装 | 强烈建议独立 venv:这个包会带来 numpy / pandas / pyarrow 等重量级数值栈,装进全局环境后很难回退 |
50 条依赖到底有多重:按体积和类别分别看
先说明口径:下表「最大文件体积」是本机逐个查 PyPI 得到的单个包内最大文件的字节数,用于比较相对轻重,不是安装后的磁盘占用,也不等于全部平台文件之和。
| 包 | 为什么它会在依赖里 | 本机取到的最大文件体积 | 适用场景 / 注意点 |
|---|---|---|---|
pyarrow>=15.0.0 | Parquet 读写:AI 记忆产物与回测产物都以 Parquet 导出 | 50.7 MB | 不跑 AI agent 也装;想要轻量环境时可评估是否可后置安装 |
scipy>=1.14.0 | 数值与优化:指标计算、组合相关计算 | 35.8 MB | 注释写 SciPy 1.14+ 才支持 NumPy 2.x |
duckdb | 官方推荐的 agent 时序分析入口(用 SQL 查历史,而不是把大段 bar 塞进提示词) | 31.2 MB | AI agent 路线会用到;纯规则策略回测基本不碰 |
matplotlib>=3.3.3 | 回测出图与 tearsheet 绘图 | 31.1 MB | 出了名的重;无图形界面的服务器要留意后端设置 |
litellm>=1.83.7,<=1.83.14 | 多模型路由:agent 可用不同 provider 的模型串 | 26.2 MB | 上限被钉死在 1.83.14,属强约束,升级前先看官方说明 |
numpy>=1.20.0,<2.5.0 | 数值基础库 | 19.8 MB | 注释写 NumPy 2.5 会通过 pandas 2.x 日历路径发出大量 timedelta 弃用告警,因此刻意设了上限 |
pandas>=2.2.0 | 数据结构与时间序列 | 11.6 MB | 下限 2.2.0,与 pandas_market_calendars、exchange_calendars 配合 |
sqlalchemy | 数据库抽象层 | 9.5 MB | 与 SQLite / Postgres 相关路径配合 |
plotly>=5.18.0 | 交互式图表 | 9.2 MB | 与 matplotlib 同时存在,二者用途不同 |
ccxt>=4.5.50 | 加密货币交易所统一接口 | 6.3 MB | 注释写明 4.5.50+ 才包含 WEEX 支持,低于该版本会缺交易所 |
psycopg2-binary | Postgres 客户端 | 5.6 MB | 用 binary 变体,免编译;它自带二进制依赖,体积比纯 Python 包大 |
| 依赖类别 | 代表包 | 是否必需 | 注意点 |
|---|---|---|---|
| 数值与数据结构 | numpy、pandas、scipy、pyarrow | 必需 | 体积主要来源,也是升级冲突的主要来源 |
| 数据源 SDK | polygon-api-client、alpaca-py、alpha_vantage、yfinance、databento、quandl | 必需(安装层面) | 装了 SDK 不等于有数据权限,多数要自己的账号或订阅 |
| 券商 SDK | ibapi==9.81.1.post1、lumiwealth-tradier、schwab-py、ccxt | 必需(安装层面) | ibapi 被钉死版本且只有源码包;ccxt 是选择性支持,不承诺覆盖全部交易所 |
| AI agent 栈 | google-adk[extensions]、google-genai、litellm、openai、mcp、anyio | 随包安装,但只在跑 agent 时用 | 跑 agent 还需要你自己的模型 Key;这部分体积与不跑 AI 的用户无关 |
| 存储与查询 | duckdb、sqlalchemy、psycopg2-binary、appdirs | 必需 | 记忆与缓存都落地在本地;缓存目录与记忆目录可用环境变量指定 |
| 可视化 | matplotlib、plotly、quantstats-lumi、tabulate | 必需 | quantstats-lumi 是该项目自维护的 tearsheet 分支,版本上限 <1.2.0 |
| 工程与调度 | apscheduler、pytz、holidays、exchange_calendars、psutil、yappi、tqdm、termcolor、jsonpickle、bcrypt、pytest、free-proxy、requests-oauthlib、boto3、httpx、python-dotenv、Flask、setuptools<81、websockets、polars、pandas_market_calendars、pandas-ta-classic | 必需(安装层面) | setuptools 也设了上限 <81;pytest 出现在运行期依赖里,说明它默认把测试工具一并装上 |
requirements.txt 与 setup.py 的 install_requires 各 50 条,PyPI 元数据 requires_dist 是 51 条(多出的一条是 thetadata; extra == "thetadata",即可选 extras)。另外两条清单有一处互换差异:requirements.txt 里有 websockets>=15.0.1 而 setup.py 里没有,setup.py 里有 httpx 而 requirements.txt 里没有。所以你用 pip install -r requirements.txt 和 pip install lumibot 装出来的环境,在极端情况下会差一个包的版本解析结果——这不是本站的推断,是两份文件摆在一起的直接差异。polars 那一行:本机对 polars>=1.32.3 的 PyPI 查询失败(网络错误),因此本页不给它的体积与轮子标签。宁缺不编:这一项标为「未取到」,而不是拿别的版本号凑数。两个可能让你卡住的点:只有源码包的 ibapi 与 39 MB 的 jar
这两件事都不会在 README 的安装段落里被强调,但会实际影响安装结果与磁盘占用。
| 卡点 | 现象 | 怎么确认 | 注意点 |
|---|---|---|---|
ibapi==9.81.1.post1 只有源码包 | 本机查 PyPI 得到的标签是 SDIST-ONLY(无 any wheel、无平台 wheel) | 打开 pypi.org/project/ibapi/9.81.1.post1/#files 看文件列表 | 源码安装通常能成功,但是否需要额外构建工具链本机未实测;Windows 上失败会表现为编译错误 |
| 版本被钉死 | ibapi== 是精确等号,不是 >= | 看 requirements.txt / install_requires 原文 | 如果你的项目另外需要别的 ibapi 版本,会直接冲突 |
| 依赖解析被上限截断 | numpy<2.5.0、litellm<=1.83.14、setuptools<81、quantstats-lumi<1.2.0 都设了上限 | pip install lumibot 的输出里看实际解析到的版本 | PyPI 上 numpy 最新是 2.5.3、litellm 最新远高于 1.83.14,都会被约束排除;这不是报错,是你的环境会比「最新」旧 |
| 可选的 39 MB jar | 仓库内 lumibot/resources/ThetaTerminal.jar = 39,187,662 字节 | 看仓库 lumibot/resources/ 目录页的文件大小 | ThetaData 是可选 extras(extras_require = {"thetadata": ["thetadata"]}),但 jar 随包走 |
| jar 确实在 wheel 里 | 本机把 lumibot-4.5.91-py3-none-any.whl 解包后,231 个条目内含该 jar | python -m pip download --no-deps lumibot==4.5.91 后解压查看 | 这也解释了为什么这个纯 Python wheel 有 37.8 MB |
| 是否需要本机 Java | 未实测 | 官方文档未在安装段落明确要求 | 本站不写「必须装 Java」,也不写「不需要」——标为未实测,请以官方 ThetaData 相关文档为准 |
| 附带装进来的内部技能 | 同一 wheel 里还带 lumibot/components/agents/skills/ 下的 3 个技能与 agents/*.yaml | 同上,解包即可看到 | 这是 LumiBot 的运行时技能,和 EasyClaw 的技能体系无关,别混淆 |
哪些是实测结论,哪些只是元数据推断
这一节把本站做过的探测逐条摊开,并给每条标注结论强度。「实测」= 在本机真的执行了命令并读到输出;「推断」= 只依据元数据或文档,未在本机验证行为。
| 实测项 | 用到的命令 / 接口 | 观察结果 | 结论强度 | 注意点 |
|---|---|---|---|---|
| PyPI 发行信息 | 拉取 pypi.org/pypi/lumibot/json | 最新版 4.5.91,2026-09-06T21:16:02Z;共 640 个发行版;requires_dist 51 条 | 实测 | 采集时点快照,版本会继续更新 |
| wheel 内容 | pip download --no-deps lumibot==4.5.91 后解包 | 37,810,900 字节,231 个条目;内含 ThetaTerminal.jar、agents/skills/*、dist-info/licenses/LICENSE | 实测 | 解包看到的是包装载的内容,不代表运行时都会用到 |
| 仓库版本与依赖清单 | 读取 raw/dev/setup.py 与 raw/dev/requirements.txt | version="4.5.92";python_requires=">=3.10";两份清单各 50 条;与 requires_dist 存在一处互换差异 | 实测 | 读的是 dev 分支当时的文件,会随提交变化 |
| 依赖轮子标签与体积 | 对 50 条依赖逐包查 PyPI JSON | 得到体积表与平台标签;ibapi 为 SDIST-ONLY | 实测(部分失败) | polars 查询失败,该项无结论;其余依赖的标签是「当前最新版」的标签 |
| 端到端安装 | 全新 venv 中执行 pip install lumibot | 失败:exit=1,7.6 秒,停在 ibapi-9.81.1.post1.tar.gz 的 metadata 生成 | 实测(失败) | 报错原文 metadata-generation-failed,pip 自己注明「这是被依赖包的问题,不是 pip 的问题」;本站不据此写「安装成功」或「安装失败」;这是本页最重要的边界 |
| 排除自身原因 | pip install --dry-run --no-deps lumibot | exit=0,输出 Would install lumibot-4.5.91 | 实测(通过) | 证明 LumiBot 自己的 wheel 没问题,失败来自依赖链 |
| 换安装方式能否绕过 | pip install --no-build-isolation ibapi==9.81.1.post1,以及不钉版本的 pip install ibapi | 两种都失败,同样报 ModuleNotFoundError: No module named src | 实测(失败) | 不是版本选择或构建隔离的问题,是该 sdist 自身缺陷 |
| 导入验证与最小回测 | —(安装链未打通,无从执行) | 未执行 | 未完成 | 没有导入成功的证据,就不声称导入成功;回测能否跑通属另一件事 |
pip install lumibot 会失败」,不等于「LumiBot 装不上」——失败点是它依赖的一个老券商 SDK,不是框架本身。已知可行的方向有三条:①pip install lumibot --no-deps 先装框架本体,再按需逐个补依赖(不用 Interactive Brokers 就不必装 ibapi);②若必须用 IBKR,改用官方 IB API 安装包或可构建的 ibapi 版本,再手动对齐版本号;③走容器 / 托管路线绕开本地构建。这三条本站只验证了第 ①的前半步(--no-deps 能解析到 lumibot-4.5.91),其余未实测,请以你的环境实测为准。你也可以自己用两条命令判断:
python -m pip show lumibot把「正在进行的实测」写成「已验证成功」是最常见的失真方式,本站不做这件事。你可以自己用两条命令判断:python -m pip show lumibot 看装到哪一版,以及 python -c "import lumibot; print(lumibot.__file__)" 看能不能导入(这两条是通用 pip / Python 用法,本站未在本机完成端到端安装,因此不声称它们已被验证成功)。装不上时按这个顺序查
按「先看版本、再看编译、最后看网络与权限」的顺序排查,比反复重装省时间。下表是安装阶段真实会遇到的场景。
| 现象 / 报错 | 可能原因 | 怎么确认 | 注意点 |
|---|---|---|---|
安装到编译阶段失败(与 ibapi 相关) | 该依赖只有源码包,需要本地构建 | 看 pip 输出里是否出现 Building wheel for ibapi 之后再报错 | 本机未实测该路径;若失败,先确认是否具备构建工具再考虑跳过 |
ModuleNotFoundError: No module named 'lumibot' | 装到了另一个 Python 环境 | python -m pip show lumibot 与 python -c "import sys; print(sys.executable)" 对比路径 | Windows 上机器里常有多个 Python;用 python -m pip 而不是裸 pip 能显著减少这类问题 |
| 依赖解析出比你预期更旧的版本 | numpy<2.5.0、litellm<=1.83.14、setuptools<81 等上限生效 | 对比 pip list 与 PyPI 上的最新版 | 这是设计上的约束,不是 bug;要改上限就得自己承担未验证组合的风险 |
| AI 示例一运行就退出 | 缺模型 Key(例如 Gemini 的 Key) | 看日志里是否出现 provider key 相关提示 | README 明确写了缺 Key 会提示并给出建 Key 链接;这与安装是否成功无关 |
| 回测一启动就取不到数据 | 数据源未配置或该源需要订阅 | 看是否设置了 BACKTESTING_DATA_SOURCE;先用 Yahoo 免费日线试 | 安装成功不等于数据可用,见数据源与路由 |
| 下载阶段长时间不动或超时 | 依赖数量多、单包体积大 | 看 pip 是否仍在下载(本机第一次探测耗时明显偏长) | 建议配镜像源并留足时间,别在中途反复 Ctrl+C(会留下半装状态) |
| 装完发现全局环境被污染 | 没在 venv 里装 | pip list 是否出现大量数值/AI 相关包 | 这个项目会带进 numpy / pandas / scipy / pyarrow / duckdb 等重量级依赖,务必用独立 venv |
| 磁盘突然少了几百 MB | wheel 与缓存叠加(单个包最大文件可达 50.7 MB) | 看 pip cache dir 与 venv 所在目录大小 | 清缓存用 pip cache purge;本站未给出确切的最终占用数字 |
关于 LumiBot 安装的高频问题
以下回答基于 2026-09-22 对 PyPI 元数据、仓库文件与本机探测的核对;涉及具体安装结果的部分会明确标注是否已实测。本站未实盘下单,不做收益声明。
为什么 pip install lumibot 装到的版本和 README 说的不一样?
因为两个来源本来就不同步:PyPI 上最新发行版是 4.5.91(2026-09-06 上传),而仓库 dev 分支的 setup.py 里版本号已经写成 4.5.92,PyPI 的发行版列表里没有 4.5.92。README 的 AI 快速上手因此直接指向仓库分支 @version/4.5.92。这不是本站的推测,是两条官方命令放在一起的直接结果。传统规则策略的回测用 PyPI 版就够;要跑 README 的 AI 示例,按 README 的命令装。
能用 Python 3.13 吗?
本站核到的事实是:python_requires 写 >=3.10,但 wheel 元数据的 classifiers 只列了 3.10 / 3.11 / 3.12,没有 3.13;仓库里与 3.13 相关的两个分支(3.13-support 2024-12-09、3.13-fix 2024-12-17)都停在 2024 年。本站没有在 3.13 上实测过,因此不写「支持」也不写「不支持」。要稳妥,就用被官方列名的 3.11 或 3.12;要用 3.13,请自己先在一个 venv 里验证,并留意那些带上限的依赖在你的版本上能不能解析。
要不要装 ThetaData?
ThetaData 是可选 extras:extras_require = {"thetadata": ["thetadata"]},官方 README 把它列为「覆盖最深」的推荐数据商,但它不是必需项。需要注意的是,即使你不装 extras,仓库与 wheel 里也带着 ThetaTerminal.jar(39,187,662 字节,本机解包实测确在 wheel 内)。是否需要本机 Java 运行时,本站未实测,因此不给结论。先决定你的资产类别与历史深度需求,再决定要不要为数据付费,见数据源与路由。
装好了就能直接跑 AI 示例吗?
不一定。跑 AI agent 至少还缺两样:模型 Key(README 的示例用 Gemini 的 Key,默认模型是 gemini-3.5-flash-lite)和可用的数据源配置。另外 AI 示例在 README 里是配合 4.5.92 分支写的。本站的端到端安装在采集时尚未完成,所以本页不声称「装完即可运行」——这也是本站对这类问题的统一处理方式:没实测就不下结论。
装它要占多大磁盘?
本站没有给出确切的总量数字,因为没实测完整安装。能确定的是:PyPI wheel 本身 37.8 MB(内含 39 MB 的 jar,说明 jar 在压缩后占比很大),而依赖里单个包的最大文件体积分布在 5.6 MB(psycopg2-binary)到 50.7 MB(pyarrow)之间,另有 matplotlib、duckdb、scipy 都在 30 MB 量级。「单个包最大文件体积」不等于安装后占用,所以别把上表数字相加当答案。要准确数字,装完后直接看 venv 目录大小。
我该自己装 LumiBot,还是先用 EasyClaw 技能路线?
看你的下一步要交付什么。如果你要的是一个能连券商、能跑历史回测、能让 agent 决策落地的系统,那必须自己装(自托管,并准备券商账号、数据源与模型 Key)——技能路线替代不了这件事。如果你近期只是想取数据、算指标、做一次简单回测看看感觉,那部署一套常驻框架不划算,用自然语言的技能路线成本低得多。需要说明的是:本机 EasyClaw 技能目录里没有 LumiBot 相关技能,两者之间没有已证实集成;技能路线覆盖的市场与执行形态也和 LumiBot 不同,具体对照见对比页。两条路线的分工可以互补:先用技能路线做探索,确认值得投入后再自己搭。