You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins+Bazel执行单元测试时遇ImportError,本地无法复现

问题排查方案

1. 大小写匹配问题

Python是大小写敏感语言,报错提示找不到的CustomUtils和导入语句里的Customutils末尾字母大小写不一致(U/u)。本地环境如果是Windows或默认配置的macOS,文件系统不区分大小写,能勉强匹配运行,但Jenkins通常用Linux系统,大小写严格区分,会直接触发导入错误。

  • 检查root/src/custom.py里的类名是否为CustomUtils(大写U)
  • 把导入语句修正为from root.src.custom import CustomUtils,保持和类名完全一致

2. Bazel构建配置问题

本地直接用Python解释器加载源码,而Bazel有独立的构建规则,可能存在路径或依赖配置遗漏:

  • 确认测试目标的BUILD文件中,是否将//root/src/custom添加到py_test的deps依赖列表里
  • 检查Bazel构建时的Python路径配置,确保root/src目录被正确加入sys.path,和本地环境的模块搜索路径一致

3. 构建缓存或产物不一致问题

Jenkins可能加载的是Bazel构建后的产物而非原始源码,如果缓存未更新或打包不完整会出错:

  • 在Jenkins构建流程中添加bazel clean步骤,清理旧缓存后重新构建测试
  • 检查custom.py所在目录的BUILD文件,确认py_library规则是否正确包含了该文件,保证模块被完整打包

4. Python版本差异问题

本地和Jenkins的Python版本如果不一致,导入机制可能存在细微差异:

  • 分别在本地和Jenkins执行python --version,对比版本号
  • 若版本差异较大,确认代码是否兼容Jenkins上的Python版本导入规则

内容的提问来源于stack exchange,提问作者roulette01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 16:30:43