如何用 vibe-trading update 安全升级 Vibe-Trading?wheel 与 editable 安装的区别
【免费下载链接】Vibe-Trading"Vibe-Trading: Your Personal Trading Agent"项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading
你已经装好 Vibe-Trading(PyPI 包名vibe-trading-ai)并想升级到 PyPI 上的新版本。对 wheel 安装直接pip install -U很省事,但如果你是用pip install -e .装的源码开发环境,同样的 pip 升级会把开发安装悄悄替换成发布 wheel——这正是vibe-trading update命令刻意避免的事情。自 v0.1.13 起(README 的 v0.1.13 发布说明将其列为新增命令),vibe-trading update会先判断当前安装方式(wheel / editable / 未安装的源码 checkout),只对 wheel 安装执行原地 pip 升级,其余两种方式给出对应的手工升级说明;升级完成后还会用全新子进程重新读取已安装元数据来确认版本。本文按 wheel 与 editable 两条路径说明如何执行、如何判断结果,以及哪些情况命令不会替你操作。
update 命令如何区分 wheel 与 editable 安装
命令实现位于 agent/cli/commands/update.py,它把当前安装归为三类,判定信号从便宜到贵依次检查:
| 安装方式 | 判定方式 | vibe-trading update的行为 |
|---|---|---|
wheel(pip install vibe-trading-ai从 PyPI 安装) | 包元数据可解析,且没有 editable 标记 | 原地 pip 升级到刚检查到的确切版本,然后验证 |
editable(pip install -e .) | 元数据目录中direct_url.json的dir_info.editable为真,或源码树里存在vibe_trading_ai.egg-info(旧式 editable 标记) | 不做 pip 升级,提示在仓库里git pull后重新pip install -e . |
未安装的源码 checkout(例如PYTHONPATH=agent直接运行) | importlib.metadata找不到该包 | 提示用git pull更新 checkout |
拒绝在 editable 安装上走 pip 路径的理由写在源码文档里:pip install -Uoverpip install -e .会"replace the editable dev install with a released wheel, which is a surprise nobody wants"。
同一份文档列出了命令的四条设计规则,都是"安全升级"的具体含义:
- 没有确认提示——调用
vibe-trading update就意味着"升级我",这是刻意设计,执行前不会停下来等你输入y; - 永不降级:只有 PyPI 最新版本按 PEP 440 严格大于已安装版本时才会升级;
- 升级用
sys.executable -m pip而不是裸pip,确保目标就是运行 CLI 的这个解释器; - 升级在子进程里执行。当前进程已经导入了旧代码,无法确认自己已更新,所以成功后由一个全新子进程重新读取已安装元数据来验证;任何检查失败时本地安装保持原样。
wheel 安装的主路径:执行与验证
前提:通过 PyPI 安装的 wheel 环境,即 README「One-line install (PyPI)」路径(pip install vibe-trading-ai)。如果你的版本早于 v0.1.13 还没有update子命令,用 README 各发布说明一贯给出的升级命令pip install -U vibe-trading-ai先升到带该命令的版本,之后即可使用vibe-trading update。
vibe-trading update命令流程:向 PyPI 查询vibe-trading-ai的最新版本(HTTP 超时 15 秒)→ 与当前版本比较 → 执行子进程pip install --upgrade vibe-trading-ai==<latest>(注意它钉住的是刚检查到的确切版本,而不是模糊的-U)→ 起新子进程验证。
以下是源码中写死的输出文案(文档示例,占位符处为你环境的实际版本号),可以据此判断走到了哪一步:
Already up to date (0.1.14).Upgrading vibe-trading-ai 0.1.14 -> 0.1.15 ...Upgrade failed. Re-run `vibe-trading update` or inspect the pip output above.Updated to 0.1.15. Run `vibe-trading --version` to confirm.Upgrade verification mismatch — expected 0.1.15, reported unknown. Check `vibe-trading --version`.失败分支还有两种:PyPI 查询失败时输出Could not check for updates on PyPI: <原因>;版本号无法解析比较时输出Could not compare versions (installed: ..., latest: ...)。这两类都不会改动本地安装,退出码为 1(成功为 0)。
验证是命令内置的最后一步:pip 子进程返回 0 之后,命令执行
python -c "from importlib.metadata import version; print(version('vibe-trading-ai'))"(由sys.executable在子进程中运行),把读到的版本与预期逐一比较,不一致即报上面的 mismatch 并以退出码 1 结束。命令通过后,按提示再确认一次:
vibe-trading --version输出的版本号应与升级后版本一致。README 在 v0.1.9 发布说明中也强调过--version始终与已安装包保持一致。
editable 与开发安装:git pull 路径
如果你的环境是 README「Path B: Local install」的开发安装:
git clone https://github.com/HKUDS/Vibe-Trading.git cd Vibe-Trading python -m venv .venv source .venv/bin/activate # Linux / macOS pip install -e .在这种环境里运行vibe-trading update,命令检测到 editable 安装后会打印类似下面的提示(文档示例)并直接返回,不做任何 pip 操作:
Editable/development install detected (0.1.14 -> 0.1.15 is available on PyPI). This checkout is installed with `pip install -e .`, so a pip upgrade would replace your dev install with the released wheel. Update the checkout instead: run `git pull` in the repo and reinstall (`pip install -e .`).对应的手工操作就是提示中给出的两条命令:
git pull pip install -e .如果是完全没有 pip 元数据的 checkout(源码判定为checkout类型),提示为Running from an uninstalled checkout ... No pip-managed install found — update the checkout withgit pull.,此时只需git pull,无需重装。
Docker 部署与跨 0.1.10 升级的注意事项
两条文档明确给出的边界,升级前值得核对:
- Docker 部署:源码说明容器场景被刻意排除在
update命令之外("detection is deferred"),不要在容器里依赖这条命令。README 给出的容器升级方式是git pull && docker compose up --build;持久记忆、跨会话搜索索引、用户创建的技能、shadow accounts、broker connector 配置、web 会话、回测运行、swarm 历史和上传都存放在命名 Docker volume 中,这条路径升级不会丢数据,只有docker compose down -v会删除数据。 - 从 0.1.10 之前升级:0.1.10 迁到了 LangChain 1.x。README 提示,若
pip install -U vibe-trading-ai覆盖 0.1.10 之前的安装后出现导入报错(例如 langgraph 无法导入),重建 venv 或执行pip install --force-reinstall vibe-trading-ai;全新安装不受影响。
完成状态
- wheel 环境:
vibe-trading update返回 0,且vibe-trading --version打印升级后的版本,即完成。 - editable / 开发环境:
vibe-trading update只负责告诉你走git pull+pip install -e .,命令本身不会替换你的开发安装——这是它"安全"的核心:它宁可停下来给你正确的手工步骤,也不做会改变安装类型的事。 - 已知限制:命令无确认提示、只升不降、不处理 Docker 场景;任何一步失败时本地安装保持不动,按输出提示重跑或查看 pip 原始输出即可。
命令行为对应的回归测试位于 agent/tests/test_cli_update.py,安装路径的完整上下文见 README.md 的 Quick Start 与 Path A / Path B 章节。
【免费下载链接】Vibe-Trading"Vibe-Trading: Your Personal Trading Agent"项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考