无法使用 bazel 从源代码构建 TensorFlow。 2016 年 1 月 22 日

Unable to build TensorFlow from source with bazel. 22nd January 2016

我想从源代码安装最新的 TensorFlow。我拉了存储库,然后 运行

bazel build -c opt //tensorflow/tools/pip_package:build_pip_package

我收到这个错误:

ERROR: /home/samuelchin/tensorflow/tensorflow/models/embedding/BUILD:10:6: First argument of load() is a path, not a label. It should start with a single slash if it is an absolute path.
ERROR: /home/samuelchin/tensorflow/tensorflow/models/embedding/BUILD:10:6: file '/tensorflow:tensorflow.bzl.bzl' was not correctly loaded. Make sure the 'load' statement appears in the global scope in your file.
ERROR: /home/samuelchin/tensorflow/tensorflow/models/embedding/BUILD:104:1: name 'tf_gen_op_wrapper_py' is not defined.
ERROR: /home/samuelchin/tensorflow/tensorflow/tools/pip_package/BUILD:13:1: Target '//tensorflow/models/embedding:package' contains an error and its package is in error and referenced by '//tensorflow/tools/pip_package:build_pip_package'.
ERROR: Loading failed; build aborted.
INFO: Elapsed time: 0.071s.

原来 bazel 已经过时了。我的bazel之前的版本是0.1.2,最后一次更新是在12月份。此后,Bazel 已更新至 0.1.4。对于出现此错误的人,更新 bazel 即可解决问题。然后您可以正常构建。

我猜将来如果无法构建,您可能需要检查 bazel 是否已更新到最新版本。

最近对 TensorFlow BUILD 文件进行了更改,导致对 Bazel 0.1.4 的依赖。这是 discuss@tensorflow.org 邮件列表中的 announced,但尚未进入网站文档。

正如您已经发现的那样,将 Bazel 升级到 version 0.1.4 应该可以修复此构建错误。