LumiBot / 许可与商业边界

LumiBot 的许可到底写的是什么:GPL-3.0,还是 MIT?

同一份项目,四处官方来源给出两套许可口径:GitHub 的许可字段与仓库 setup.pyGPL-3.0,而你在 PyPI 上装到的 4.5.91 版 元数据写 MIT。更关键的是——本站把那个 wheel 解开看了:元数据说 MIT,而同一个包里携带的 LICENSE 文件内容是 GNU GPL v3 全文(35,130 字符)

这不是二手转述。下面每一条都给了文件路径、采集方式和复现命令,你可以用一条 pip download 在五分钟内自己验一遍。这个差异之所以重要,是因为它会直接落到「我能不能把它放进我的产品里」这种问题上,而这类问题必须看官方 LICENSE 文件原文,不能看博客结论。

同时要分清两件事:开源代码官方托管的 BotSpot 平台。前者可以自己部署,后者是商业服务,承载数据、并行回测、调度、监控、告警与 kill switch。README 里存在一段 affiliate 声明,说明部分 provider 链接与优惠码可能支持项目开发——本站如实转述这段声明的存在,但不复制任何优惠码或推广链接

GitHub 侧:GPL-3.0PyPI 4.5.91 元数据:MIT包内 LICENSE 文件:GPL v3 全文采集日期 2026-09-22
本文核对环境
  • 仓库:Lumiwealth/lumibot,默认分支 dev(HEAD 28afefe8
  • PyPI 产物:lumibot-4.5.91-py3-none-any.whl,37,810,900 字节,2026-09-06T21:16:02Z 上传
  • 本机:Python 3.11.9 / Windows;wheel 已解包读取 METADATA 与 licenses/LICENSE
  • 本站与 Lumiwealth、BotSpot 无关联;本站不提供法律意见
  • 采集日期 2026-09-22;不做收益声明

四处来源,两套口径

同一项目在 GitHub、setup.py、PyPI 元数据与包内 LICENSE 文件上的许可声明

GitHub license 字段GPL-3.0(spdx_id)
dev 分支 setup.pylicense="GPL-3.0" + GPLv3 classifier
PyPI 4.5.91 元数据License: MIT + MIT classifier
包内 LICENSE 文件GNU GPL v3 全文,35,130 字符
许可口径并置示意(依据 GitHub REST license 字段、dev 分支 setup.py、wheel 内 dist-info/METADATAdist-info/licenses/LICENSE,2026-09-22 采集)。示意图只重述四处出处的事实,不构成法律意见,也不推测官方动机。
四处来源

同一项目的许可声明,摊开来看

下面这张表是本站逐处读取的结果。前三行是「项目说自己是 GPL」,中间三行是「你在 PyPI 拿到的东西说自己 MIT」,最后两行是「包里面实际带的文件」。请特别注意最后两行——它们是唯一能直接代表你手上那份产物的证据。

口径来源具体内容文件位置 / 读取方式采集方式注意点
GitHub 许可字段GPL-3.0(spdx_id,名称为 GNU General Public License v3.0)REST /repos/Lumiwealth/lumibotlicense 对象API 直读这是平台识别结果,依据仓库根目录的 LICENSE 文件
README 徽章盾牌标记 License: GPL v3README 顶部徽章行原文读取徽章是人写的展示元素,不是许可文件本身
dev 分支 setup.pylicense="GPL-3.0";classifier License :: OSI Approved :: GNU General Public License v3 (GPLv3)raw.githubusercontent.com/.../dev/setup.pysetuptools.setup(...)原文读取打包脚本里的声明会决定以后新发布的元数据,但不改变已发布产物的元数据
PyPI 接口的 license 字段MITpypi.org/pypi/lumibot/jsoninfo.licenseAPI 直读该字段来自上传时包内的元数据,随版本冻结
PyPI 接口的 classifierLicense :: OSI Approved :: MIT License同一 JSON 的 info.classifiersAPI 直读与上一行同源,两者一致地说「MIT」
PyPI 4.5.91 wheel 的 METADATALicense: MITClassifier: License :: OSI Approved :: MIT License,另有 Metadata-Version: 2.4Requires-Python: >=3.10包内 lumibot-4.5.91.dist-info/METADATA本机解包读取同一份 METADATA 里还写着 License-File: LICENSE,即「许可正文在另一个文件里」
包内 LICENSE 文件的文件名存在,路径为 lumibot-4.5.91.dist-info/licenses/LICENSEwheel 文件清单(共 231 个条目)本机解包读取文件名和 METADATA 的 License-File 对得上,说明它不是缺失,而是内容不一致
包内 LICENSE 文件的内容GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 —— 全文 35,130 字符同一路径,读取正文首段本机解包读取正文以 Copyright (C) 2007 Free Software Foundation, Inc. 开头,是标准 GPL v3 全文,不是 MIT 文本
这张表说明什么:「LumiBot 是 GPL 还是 MIT」这个问题没有一个可以照抄的答案——四处官方来源里,三处说 GPL、三处(含你已经装到的那个包)说 MIT,而包里真正携带的正文是 GPL v3。本站只并置事实与文件位置,不给法律结论,也不猜测官方为什么这么做。要判断你自己的用法,请以你手上那份产物的 LICENSE 原文为准,必要时咨询专业人士。
可复现实测

五分钟自己验一遍:包里的 MIT 声明与 GPL 正文

下面这套命令不依赖本站任何结论,只需要能访问 PyPI。注意:只下载 wheel、不装依赖,所以很快,也不会污染你的环境。

# 1) 只下载 wheel,不安装、不装依赖
python -m pip download --no-deps lumibot==4.5.91 -d .\lumi_check

# 2) 查看包内文件清单
python -c "import zipfile,glob;z=zipfile.ZipFile(glob.glob('lumi_check/*.whl')[0]);print('\n'.join(n for n in z.namelist() if 'licenses' in n or n.endswith('METADATA')))"

# 3) 读元数据里的许可声明(你会看到 License: MIT)
python -c "import zipfile,glob;z=zipfile.ZipFile(glob.glob('lumi_check/*.whl')[0]);print('\n'.join(l for l in z.read('lumibot-4.5.91.dist-info/METADATA').decode().split(chr(10)) if l.startswith(('License','Classifier','Metadata-Version','Requires-Python'))))"

# 4) 读包内 LICENSE 正文的前两行(你会看到 GNU GENERAL PUBLIC LICENSE / Version 3)
python -c "import zipfile,glob;z=zipfile.ZipFile(glob.glob('lumi_check/*.whl')[0]);print(z.read('lumibot-4.5.91.dist-info/licenses/LICENSE').decode()[:120])"
检查项命令要做的事本站实测你会看到什么注意点
产物形态下载 4.5.91只有一个 wheel,lumibot-4.5.91-py3-none-any.whl,37,810,900 字节,没有 sdist没有 sdist 意味着「自己编译打包再改元数据」这条路在这个版本上不存在
包内条目数列出 wheel 清单共 231 个条目,含 dist-info 目录与 lumibot/ 包体条目数随版本变化,别把它当固定值
元数据许可字段dist-info/METADATALicense: MITClassifier: License :: OSI Approved :: MIT License同时可见 License-File: LICENSE,指向包内实际许可正文
包内 LICENSE 正文dist-info/licenses/LICENSEGNU GENERAL PUBLIC LICENSE / Version 3, 29 June 2007,全文 35,130 字符这就是「元数据说 MIT、正文是 GPL」的直接证据
Python 版本门槛读同一份 METADATARequires-Python: >=3.10与仓库 setup.pypython_requires 一致,见安装与依赖体量
重复性换机器 / 换镜像源再跑一次只要拿到的是同一个 4.5.91 wheel,结果应一致若官方重新上传同版本号(PyPI 允许撤回后重传),结果可能变;所以务必记下你下载的日期与文件名
为什么值得自己跑一遍:许可问题是少数「别人说了不算」的事——它取决于你手上那份产物的正文文件。上面四步加起来不到五分钟,但能让你避免直接引用一篇二手博客的结论。如果你需要的是「这个项目是什么、怎么跑」,那看本站其他页面就够了;但如果你要把它的代码放进任何对外交付物里,请回到这个 LICENSE 文件本身。
商业边界

开源代码与官方托管:哪些是免费的代码,哪些是付费的服务

官方 README 同时承载两件事:一是开源框架的用法,二是向托管平台 BotSpot 的导流。这两件事需要分开读——前者你能自己部署,后者是别人的服务器与订阅关系。

能力开源自托管官方托管平台注意点
框架代码可自行获取与部署同一套代码在平台上运行代码与平台是两件事,不要因为平台收费就以为框架也收费
行情与历史数据自己选数据源与账号(免费源与付费源都有)官方称托管环境已接入若干数据数据订阅的授权与费用通常在数据商一侧,见数据源与路由
回测算力用你自己的机器官方称提供并行回测的执行能力回测规模大时差别明显;小规模自测通常够用
调度与定时自己配计划任务或常驻进程官方称已内置调度「只跑日频」这类需求在自托管上也要自己兜底
日志与告警自己搭官方称已整合日志与告警告警通道与配额属平台侧规则
监控与 kill switch自己实现官方称提供监控与一键停止这是自托管最容易被低估的一块,见回测与实盘一致性
券商连接用自己的券商账号与 API Key官方称在平台上统一接入无论哪条路,委托最终都落在你自己的券商账户上
AI 网关与模型凭据自己准备模型 Key(默认模型为 gemini-3.5-flash-lite官方文档提到托管侧有 AI 网关相关环境变量托管网关属平台功能,不是本地开源的必需项
策略库与市场用仓库自带示例与社区仓库官方称有策略市场与发布流程市场上看到的策略收益数字不构成对你的收益预期
一个判断口径:先问「这件事发生在谁的机器、谁的账号上」。发生在你机器上的(回测、策略逻辑、密钥保管)属于自托管;发生在别人服务器上的(调度、监控、并行算力、策略托管)属于服务。官方 README 会把两者写成一条顺畅的使用路径,读的时候自己拆一下即可——这不代表官方有什么问题,只是「同一页文档里的两类东西」。
怎么读

README 里的商业痕迹:看到这些时该注意什么

README 是项目最重要的门面,也常常同时是商业入口。下面把本站读到的几类文案列出来,并给出「你该怎么读」——目的不是评判,而是让你在读文档时不把推销内容当成技术结论。

文案类型出现的位置(本站读到的形式)它在推进什么你该怎么读注意点
带跟踪参数的链接README 中指向托管平台的链接普遍带 utm_* 查询参数统计来源渠道参数只影响统计,不影响内容;本站不复制这些参数化链接不要因为链接「看起来是官方域名」就跳过阅读;域名相同也可能带渠道参数
免费挑战 / 训练营README 提到创作者带队的免费挑战,并提到训练营的报名人数规模把文档读者转成社群与课程参与者这是市场文案;「多少人参加」不是技术指标,也和代码质量无关报名人数、社群规模这类数字无法由代码库验证,本站不做复述判断
托管平台能力介绍独立小节描述托管环境的各项能力卖托管服务当作「另一条部署路径」的介绍,与框架本身能力分开记平台能力不等于开源框架能力;判断「我需要什么」时以本页第三节的分工表为准
策略市场README 指向策略市场,并可看到已发布的策略列表内容生态与转化市场上的收益展示有其自身口径与样本期,不构成你的预期收益任何历史收益展示都不能当作未来预期;本站全站不做收益声明
面向编码代理的 MCP 入口README 提到可把平台的 MCP 接进编码助手把托管平台嵌进开发流程这是平台能力;仓库本身也自带 llms.txt 等面向 AI 的说明文件仓库自带的 AI 说明文件面向本地仓库,平台 MCP 面向平台账号,两者不是一回事
affiliate 声明README 的免责声明段落:明确写到部分 provider 链接或优惠码(其中点到 ThetaData)可能支持该项目的持续开发披露返佣关系这是一段值得肯定的披露:它告诉你「推荐某个数据商」这件事存在利益关联本站如实转述该声明的存在,但不复制任何优惠码、折扣码或推广链接;要买数据请直接看数据商官网当期条款
本站的做法:全站只使用不带参数的官方地址(仓库、PyPI、官方文档站、官方社群邀请链接),不复制优惠码、不复制带 utm_* 的推广链接、不替官方计算成本。如果你要装数据商或托管服务,请直接去官方页面看当前价格与条款——那些数字随时会变,任何第三方转述都可能过时。
使用前自查

动手之前,自己确认这六件事

这六个问题的共同点是:答案都在官方文件里,但都不在任何一篇「LumiBot 教程」里。建议按顺序过一遍,尤其是涉及对外交付的场景。

问题为什么重要去哪个文件看注意点
我实际用的是哪一版?不同版本的元数据与代码可能不同,口径会跟着变PyPI 发行版页;或本地 pip show lumibotpip install lumibot 拿到的是 PyPI 上的 4.5.91,而 README 的 AI 示例要求从仓库分支装 4.5.92
我拿到的是哪个 LICENSE?这是唯一直接代表你手上这份产物的许可证据包内 dist-info/licenses/LICENSE;仓库根目录 LICENSE不要只看 PyPI 页面的许可标签,也不要只看仓库页徽章
我是自己用,还是要对外交付?「自己跑」与「放进产品分发」是两种完全不同的使用方式官方 LICENSE 原文本站不给法律判断;请按原文与你所在法域的实际规定确认
我是否修改后不打算公开源码?不同许可对衍生作品的要求不同同上这是最需要专业人士介入的场景,不要靠社区问答下结论
我要接的是哪个数据源或券商?数据与券商侧有自己的条款,与项目许可无关数据商 / 券商的官网条款项目许可不覆盖第三方数据与券商协议;另外项目不提供 A 股券商通道
我是否会把它的输出当成投资建议?回测与 AI 决策都不构成收益承诺README 的免责声明段落官方免责声明明确写明这是教育/信息用途、不构成投资建议,并提示算法交易存在损失风险;本站同样不做收益声明
社区与边界

出问题时去哪问,以及本站不回答什么

下面是官方在 README 与 PyPI 项目信息里给出的对外渠道。本站只列渠道与用途,并把链接统一处理为不含跟踪参数的官方地址。

渠道适合问什么注意点
官方文档站 lumibot.lumiwealth.com用法、生命周期方法、示例与指南英文为主;真正有价值的口径说明常在仓库 docs/ 目录而不在文档站首页
GitHub Issues(仓库地址 + /issues可复现的 bug、版本相关问题提问前先确认你用的是哪一版;仓库默认分支是 dev 而不是 main
Discord 社群(邀请链接 discord.gg/4R9j6T3PN8快速提问、看别人怎么用聊天里的结论不是官方文档;涉及许可与资金的问题不要只在聊天里确认
Reddit 社区 r/BotSpotTrade经验分享、使用感受社区内容时效性差,注意发帖时间
YouTube 频道(Lumiwealth)跟着视频跑一遍流程视频不会替代你核对版本与依赖;示例能跑通不等于策略有效
仓库内的 AI 说明文件(llms.txtAGENTS.md 等)让编码助手按项目约定写代码这些是给工具读的约定,不是使用手册
本站(LumiBot 项目研究站)中文的机制核对、出处标注、边界说明本站不是官方,也不提供支持;发现事实错误欢迎对照出处指出
本页的三条边界:① 本站与 Lumiwealth、BotSpot 没有任何关联,不代官方回答支持问题;② 本站不提供法律意见,许可问题只并置事实与文件位置;③ 本机 EasyClaw 技能目录中没有任何 lumibot 相关技能,即 LumiBot 与 EasyClaw 之间没有已证实集成——两边各有自己的能力与前置条件,具体对照见站点对比页。另外提醒:任何情况下都不要把券商 API Key、模型 Key 或账号凭据贴进公开 issue、社群聊天或截图里。
FAQ

关于 LumiBot 许可与费用的高频问题

以下回答基于 2026-09-22 对 GitHub 接口、dev 分支 setup.py、PyPI 元数据与本机 wheel 解包的核对。涉及许可的解释请以官方 LICENSE 文件原文为准;本站不提供法律意见。

LumiBot 到底是 GPL-3.0 还是 MIT?

两套口径同时存在,而且都在官方发布物里:GitHub 的许可字段、README 徽章、仓库 setup.py 都写 GPL-3.0;而 PyPI 上 4.5.91 的元数据(info.license、classifier,以及 wheel 内 METADATA)写的是 MIT 与 MIT classifier。更关键的是:同一个 wheel 里携带的 dist-info/licenses/LICENSE 文件内容是 GNU GPL v3 全文(35,130 字符)。所以「它就是 GPL」或「它就是 MIT」这种一句话结论都不严谨——本站只把四处出处并置给你看。

那我应该以哪个文件为准?

你手上那份产物携带的 LICENSE 正文文件为准——对 pip install lumibot 拿到的 4.5.91 来说,就是 wheel 内 dist-info/licenses/LICENSE;对从仓库 clone 的代码来说,就是仓库根目录的 LICENSE。PyPI 页面的许可标签与仓库徽章都是声明性信息,可能与正文不一致(本页第二节的四步命令可以在五分钟内验证)。如果你需要判断具体用法,请拿这份正文去找专业人士确认,不要依赖本站或任何二手文章的转述。

我公司内部自己用,需要开源我的代码吗?

本站不能替你回答这个问题——它取决于许可证条款、你对「使用 / 修改 / 分发」的实际做法,以及你所在法域的规定。可以确定的只有两件事实:①这个项目在官方口径上存在 GPL-3.0 的声明,而 GPL 系许可证对衍生作品的源码公开有相应要求;②同一批产物里也存在 MIT 声明。这两条事实之间的取舍需要你按正文与自己情况判断。不要在社区问答或博客评论里下结论,也不要让本站的并置表替代专业意见。

我可以把它放进我的商业产品里吗?

本站不给结论。原因很具体:许可口径本身在官方发布物里就不一致,而「能不能放进商业产品」还要看你是否修改、是否分发二进制、是否通过网络提供服务、你所在法域如何认定等一系列事实。本站能帮你的只有一件事——把四处出处和可复现的检查命令列清楚(见本页第一、二节),让你拿着这些事实去问对的人。

BotSpot 是必须买的吗?

不是。开源代码可以自己部署,PyPI 上有可安装的发行版,README 里也给了本地回测与自连券商的写法。BotSpot 承载的是托管侧的能力:托管数据、并行回测、调度、日志与告警、监控与 kill switch 等。是否需要付费平台,取决于你「愿不愿意自己维护调度、日志与告警」——这部分工作真实存在,只是有人愿意自己做、有人愿意买服务。

为什么 README 里到处都是推广链接?本站为什么复述它?

README 同时是技术文档和商业入口,这在商业公司维护的开源项目里很常见。本站复述的原因只有一条:README 的免责声明段落里明确写了 affiliate 关系(部分 provider 链接与优惠码可能支持项目开发)。披露的存在本身就是值得告知读者的信息——它提醒你「推荐某个数据商」这句话背后可能有利益关联,因此更应该去数据商官网核实价格与条款。本站的做法是:只保留不带参数的官方地址,不复制任何优惠码、折扣码或 utm_* 推广链接,也不替官方计算成本。

那我到底该怎么选:自托管还是用平台?

看你缺的是「算力与运维」还是「控制权」。如果你的策略是日频或周频、只需要偶尔回测,自托管的维护量通常可接受;如果你要跑大量并行回测、需要 7×24 调度与告警、并且不想自己保证进程活着,托管的价值就出来了。两条路的代码层是同一套框架,差别主要在运行环境与谁负责半夜的故障。本站不做推荐,只把分工列清楚(见本页第三节)。

下一步:确认了许可,接着该确认你装的是哪一版

许可决定「你能怎么用」,版本决定「你拿到的是什么」。这两件事合起来,才是你动手前的完整前提。安装页把两条官方路径、Python 版本范围、依赖体量与两个真实卡点都列了出来。