MacOS high sierra,MBP 2016,航站楼。在
我按照这里的指示: https://github.com/tensorflow/models/tree/master/research/syntaxnet ./configure的所有选项都被选为默认选项(并且所有python目录都被选中)。在此之前,所有步骤都已完全完成:
bazel test ...
# On Mac, run the following:
bazel test --linkopt=-headerpad_max_install_names \
dragnn/... syntaxnet/... util/utf8/...
我假设我应该运行后一行(“bazel test--linkopt”等等)。但有趣的是,不管怎样我都得到了同样的结果。在
这会抛出大约10个错误,每一个都是同一类型的“试图改变冻结的对象”,并得出结论:测试没有运行,加载包dragnn/protos时出错,无法启动构建。在
错误的一般形式如下:
syntaxnet>> bazel test --linkopt=-headerpad_max_install_names dragnn/... syntaxnet/... util/utf8/...
.
ERROR: /Users/XXX/Desktop/NLP/syntaxnet/models/research/syntaxnet/dragnn/protos/BUILD:35:1: Traceback (most recent call last): File "/Users/XXX/Desktop/NLP/syntaxnet/models/research/syntaxnet/dragnn/protos/BUILD", line 35 tf_proto_library_py(name = "data_py_pb2", srcs = ["dat..."]) File "/Users/XXX/Desktop/NLP/syntaxnet/models/research/syntaxnet/syntaxnet/syntaxnet.bzl", line 53, in tf_proto_library_py py_proto_library(name = name, srcs = srcs, srcs_versi...", <5 more arguments>) File "/private/var/tmp/_bazel_XXX/f74e5a21c3ad09aeb110d9de15110035/external/protobuf_archive/protobuf.bzl", line 374, in py_proto_library py_libs += [default_runtime] trying to mutate a frozen object ERROR: package contains errors: dragnn/protos
。。。[各种'name=“…pb2”'文件的相同错误]。。。在
INFO: Elapsed time: 0.709s FAILED: Build did NOT complete successfully (17 packages loaded) ERROR: Couldn't start the build. Unable to run tests
你知道这是怎么回事吗?谢谢。在
此错误表示
py_proto_library
规则实现中存在错误。在tf_proto_library_py
在^{“protobuf\\u archive”下载protobuf3.3.0,其中包含
//:protobuf.bzl
和错误的py_proto_library
规则实现:在第374行中,它试图改变一个不可变的对象py_libs
。在确保使用最新的Bazel版本,目前是0.8.1。在
如果问题仍然存在,则:
我建议将bug归档到:
py_proto_library
规则tf_workspace
中更新他们的Protobuf版本,并且作为一种解决方法,也许您可以修补
protobuf.bzl
。修补程序将更改这些线条:
致:
^{pr2}$免责声明:这是一个“盲目”修复;我还没有尝试它是否有效。在
长话短说。我受到了a sstrasburg的评论的启发。在
首先,卸载bazel的新版本。在
从here下载Bazel0.5.4。在
^{pr2}$之后,再跑一次
最后,我得到了
显示新错误,但仍在编译。(Linux Windows系统上的Ubuntu16不要问,原生tensorflow 1.4Winx64可以工作,但syntaxnet不行)。在
在格雷格@FX11:/mnt/c/code/models/research/syntaxnet$bazel测试。。。 错误:/home/greg/.cache/bazel/_bazel_greg/adb8eb0eab8b9680449366fbee59ec2/external/org_tensorflow/tensorflow/core/kernels/建筑:451:1:在“传递性”hdrs rule@org_tensorflow//tensorflow/core中/内核:边界检查: 回溯(最近一次呼叫): File“/home/greg/.cache/bazel/_bazel_greg/adb8eb0eab8b9680449366fbee59ec2/external/org_tensorflow/tensorflow/core/kernels/BUILD”,第451行 _可传递的\u hdrs(名称='边界检查\库收集') File“/home/greg/.cache/bazel/_bazel_greg/adb8eb0eab8b9680449366fbee59ec2/external/org_tensorflow/tensorflow/tensorflow.bzl“,第869行,可传递的 设置()
刚刚将set()更改为depset(),这似乎避免了错误。在
相关问题 更多 >
编程相关推荐