执行bazel test genc时出现no such package 'google/protobuf'错误求助
问题描述
在Ubuntu 22.04.5 LTS、Docker 26.1.3环境下,按照genc官方文档步骤完成仓库克隆、Docker镜像构建与容器运行后,在容器内仓库根目录执行bazel test genc/...时触发以下错误:
ERROR: /genc/genc/python/base/BUILD:72:11: no such package 'google/protobuf': BUILD file not found...
观察到Protobuf依赖已存在于Bazel缓存目录/root/.cache/bazel/_bazel_root/715d91338ce19255fccde512098e4d79/external/com_google_protobuf,但仓库根目录下未生成/genc/google/protobuf目录。
解决方法
同步Bazel外部依赖:在容器内的genc仓库根目录执行以下命令,强制Bazel同步所有声明的外部依赖到正确路径:
bazel sync同步完成后重新执行
bazel test genc/...。清理缓存后重新构建:删除当前Bazel缓存目录,让Bazel重新拉取并处理依赖:
rm -rf /root/.cache/bazel/_bazel_root/715d91338ce19255fccde512098e4d79 bazel test genc/...检查WORKSPACE文件有效性:打开genc仓库根目录的
WORKSPACE文件,确认Protobuf依赖的声明规则(如http_archive)是否正确,且是否通过bind规则将com_google_protobuf别名映射到google/protobuf。若存在配置错误,修正后重新执行构建。查看详细错误日志:添加
--verbose_failures参数执行测试命令,获取更完整的依赖解析信息,定位具体问题:bazel test genc/... --verbose_failures
内容的提问来源于stack exchange,提问作者Muramat
相关产品推荐
相关产品推荐

