# PR #21449 完整报告

- 仓库：`sgl-project/sglang`
- 标题：[diffusion] CI: fix breaking import path in nightly
- 合并时间：2026-03-26 16:33
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/21449

---

# 执行摘要

修复 diffusion 夜间 CI 测试脚本中的导入路径错误，确保测试正常运行，属于常规维护，影响范围限于内部 CI 基础设施。

# 功能与动机

此 PR 旨在解决 diffusion 夜间 CI 测试中出现的导入路径失败问题。根据标题 "fix breaking import path in nightly"，推断在 CI 执行过程中脚本无法正确导入依赖模块（如 `publish_traces`），导致测试中断。这可能是由于脚本执行环境或包结构变化引起的。

# 实现拆解

修改了以下两个 CI 脚本文件，两者位于 `scripts/ci/utils/diffusion/` 目录下：

- `publish_comparison_results.py`
- `publish_diffusion_gt.py`

核心改动是将原有的硬编码 `sys.path.insert` 替换为条件导入逻辑，代码如下：

```python
if __package__:
    from ..publish_traces import ( ... )
else:
    sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
    from publish_traces import ( ... )
```

这使得脚本既能作为独立脚本直接执行（如在 CI 环境中），也能在包结构中作为模块导入（如被其他脚本调用），提高了环境兼容性。改动未涉及功能逻辑，仅调整导入方式。

# 评论区精华

无 review 讨论。

# 风险与影响

**风险**：导入逻辑变更可能在某些特定 Python 环境或包配置下仍不兼容，例如当脚本被嵌套导入或 `__package__` 未按预期设置时。但由于是修复已知错误，且逻辑基于标准 Python 导入机制，风险较低。建议在后续 CI 运行中监控导入是否成功。

**影响**：修复 CI 测试的导入问题，直接提高夜间测试的稳定性和可靠性，减少因基础设施错误导致的开发延迟。对最终用户无影响，属于后台优化。

# 关联脉络

此 PR 与近期 diffusion 模块的 CI 改进相关。例如，PR #21385 重构了 diffusion JIT 内核测试布局并收窄 CI 触发范围，可能涉及类似脚本的调整。整体来看，仓库正持续优化 diffusion 测试的 CI 流程，提升自动化测试的健壮性。