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

迁移测试文件后Bazel构建Python项目遇pydantic导入错误求助

Bazel迁移pydantic_utils模块时的导入错误诊断求助

我正在将大型项目迁移至Bazel,先从项目中基于pydantic的小型封装模块pydantic_utils入手。初始目录结构下添加BUILD.bazel文件后测试运行正常,但将test_some_module.py移至根目录、调整BUILD文件中py_library和py_test的srcs配置后,出现错误:pydantic无法导入TYPE_CHECKING,报错信息显示在导入re时触发ImportError,请求帮助诊断。

初始目录结构

pydantic_utils
  +- __init__.py
  +- some_module.py
  +- some_other_module.py
  +- subdir
     +- one.py
  +- tests
     +- __init__.py
     +- test_some_module.py

修改后的BUILD.bazel内容

load("@rules_python//python:defs.bzl", "py_library", "py_test")
load("@my_pip_install//:requirements.bzl", "requirement")

py_library(
    name = "pydantic_utils",
    srcs = glob(
        ["*.py"],
        exclude = ["test_*.py"],
    ),
    visibility = ["//visibility:public"],
    deps = [
        "//pydantic_utils/subdir",
        requirement("pydantic"),
    ],
)

py_test(
    name = "test_pydantic_utils_dp",
    srcs = glob([
        "test_*.py",
    ]),
    main = "test_some_module.py",
    deps = [
        "//pydantic_utils",
        requirement("pytest"),
    ],
)

报错信息

...pydantic_utils/test_some_module.py", line 2, in <module>
    from typing import Any

...

  File "pydantic/__init__.py", line 2, in init pydantic.__init__
    from .models import (
  File "pydantic/dataclasses.py", line 1, in init pydantic.dataclasses
    import re
ImportError: cannot import name TYPE_CHECKING

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 15:01:01