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

bazel run运行testing_example提示找不到absl.testing模块

问题根因

Bazel运行时找不到absl.testing模块是两个原因共同导致的:

  1. 依赖声明不全:你当前BUILD文件里的deps只声明了@io_abseil_py//absl:app,这个目标仅包含absl基础的app、flags相关模块代码,不包含absl.testing子包的内容。Bazel的Python构建遵循严格的显式依赖原则,沙箱运行环境只会把deps里声明的依赖打包到runfiles目录,不会自动拉取全局Python环境里安装的包,自然找不到未声明的testing模块。
  2. 本地环境和Bazel沙箱环境隔离:你本地直接执行python testing_example.py能跑通,是因为本地conda环境里安装了完整的absl-py包,所有子模块都存在于site-packages目录下可以被直接导入,但Bazel运行时不会读取本地全局site-packages里的内容,完全依赖BUILD文件声明的依赖构建运行环境。

另外你当前用py_binary规则承载测试代码也不符合Bazel的惯例,测试类代码应该使用专门的py_test规则。

修复步骤
  • 把规则类型从py_binary替换为py_test,适配Bazel的测试工作流,后续可以直接用bazel test命令执行用例、获取测试报告。
  • 补全缺失的依赖项,把absltest、flags对应的Abseil目标都加到deps列表里。

修正后的BUILD文件内容如下:

py_test(
  name = "testing_example",
  srcs = ["testing_example.py"],
  deps = [
    "@io_abseil_py//absl:app",
    "@io_abseil_py//absl:flags",
    "@io_abseil_py//absl/testing:absltest",
  ],
)

配置修改完成后,执行以下任意命令都可以正常跑通测试:

  • 直接运行二进制:bazel run //example_py:testing_example
  • 走Bazel标准测试流程:bazel test //example_py:testing_example

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:48:28