从源码构建TensorFlow Serving遭遇Bazel错误求助
源码构建TensorFlow Serving时的Bazel路径错误修复
执行以下构建命令时出现报错:
bazel build -c opt //tensorflow_serving/model_servers:tensorflow_model_server
错误输出(核心重复报错):
已定义$TEST_TMPDIR:默认输出根目录为'/home/work/serving/.cache',默认max_idle_secs为'15'。 错误:/home/work/serving/tensorflow_serving/model_servers/BUILD:52:11: 加载包'tensorflow_serving/config'失败:在/home/work/serving/tensorflow_serving/serving.bzl:2:6处:标签'@local_xla//xla/tsl/platform/default:build_config.bzl'无效,因为'xla/tsl/platform/default'不是一个包;或许你应该把冒号放在这里:'@local_xla//xla/tsl:platform/default/build_config.bzl'?该标签被'//tensorflow_serving/model_servers:platform_config_util'引用 错误:/home/work/serving/tensorflow_serving/model_servers/BUILD:52:11: 加载包'tensorflow_serving/servables/tensorflow'失败:在/home/work/serving/tensorflow_serving/serving.bzl:2:6处:标签'@local_xla//xla/tsl/platform/default:build_config.bzl'无效,因为'xla/tsl/platform/default'不是一个包;或许你应该把冒号放在这里:'@local_xla//xla/tsl:platform/default/build_config.bzl'?该标签被'//tensorflow_serving/model_servers:platform_config_util'引用 ...(其余重复报错内容一致,此处省略)
问题根源
报错直接指出,serving.bzl文件中引用的Bazel标签路径格式错误:原路径将冒号放在了xla/tsl/platform/default之后,但xla/tsl/platform/default并非包含BUILD文件的合法包目录,正确的标签格式应该是@仓库名//合法包路径:文件相对路径。
修复步骤
- 打开路径
/home/work/serving/tensorflow_serving/serving.bzl对应的文件 - 定位到第2行的
load语句,原语句为:load("@local_xla//xla/tsl/platform/default:build_config.bzl", ...) - 将标签路径修改为:
load("@local_xla//xla/tsl:platform/default/build_config.bzl", ...) - 保存文件后,重新执行最初的构建命令即可
额外提示
如果修改后仍出现类似路径错误,排查项目中所有引用@local_xla的.bzl文件,确保所有标签都遵循Bazel的路径规范:冒号前是包含BUILD文件的包目录,冒号后是该包下的文件相对路径。
内容的提问来源于stack exchange,提问作者user1846476
相关产品推荐
相关产品推荐

