执行摘要
本 PR 对 Ascend/NPU 安装流程做了一次极小的顺序调整:将 requirements-npu.txt 的安装步骤移到 pip install -e . 之后,避免 setup.py 在依赖解析时覆盖刚安装的 NPU 特定依赖。变更涉及 1 个安装脚本和 1 份安装文档,各改动 1 行,无运行时逻辑变化,风险极低。
功能与动机
PR 标题和 body 表明核心诉求是“Avoid requirements-npu.txt overwrited by setup.py”。原流程先安装 requirements-npu.txt,再执行 pip install -e .;后者会触发 setup.py 的依赖解析,可能重装或降级 NPU 相关包,导致 Ascend 环境依赖版本失控。交换顺序后,可编辑安装先完成,NPU 依赖最后落地,保证 NPU 环境依赖稳定。
实现拆解
- 修改安装脚本:在
scripts/install_vllm_mcore_npu.sh 中,将 pip install -r requirements-npu.txt ... 与 pip install -v -e . 两行顺序互换,使可编辑安装先执行、NPU 依赖后执行。
- 同步文档:在
docs/ascend_tutorial/get_start/install_guidance_A5.rst 中,将 pip install requirements-npu.txt 与 pip install -e . 的顺序对齐脚本,防止用户按文档操作时遇到同样问题。
- 配套说明:无测试、配置或部署改动;变更仅影响 Ascend 安装入口的顺序,未改变任何 API 或运行时行为。
本 PR 仅交换两处安装命令的先后顺序,未引入新的实现逻辑,故不展示源码片段。核心变动可概括为:pip install -e . 先于 pip install -r requirements-npu.txt 执行。
评论区精华
本 PR 没有任何 review 评论或讨论线程,审核人 wucong25 直接 APPROVE,未提出疑问或修改意见。变更简单明确,没有产生技术争议。
风险与影响
- 技术风险:极低。最需留意的是
requirements-npu.txt 与 setup.py 之间存在版本冲突时,新顺序会让 NPU 依赖“赢”,这正是预期目的;但若用户后续再次运行 pip install -e .,仍可能重新覆盖这些依赖,这属于 pip 依赖解析的固有限制,本 PR 只能缓解首次安装场景。
- 维护风险:
scripts/install_vllm_mcore_npu.sh 与 install_guidance_A5.rst 两处顺序现已保持一致,未来若只改动其中一处,会导致脚本与文档流程漂移。
- 影响范围:仅影响 Ascend/NPU 用户的安装步骤,不涉及训练、推理等运行时路径。
关联脉络
本 PR 与近期 NPU 安装与 CI 维护工作同属一条演进线:
#7310 为同一文档补充 requirements-npu.txt 安装步骤;
#7384 继续完善 Ascend 安装文档(日志过滤提示);
#7345 升级 Ascend 依赖版本并同步更新 requirements-npu.txt 与安装指南。
可以看出团队持续在收敛 NPU 安装流程的可复现性,本 PR 是该方向上的一个小修补。
参与讨论