【问题标题】:Save Terminal Bazel Build Output保存终端 Bazel 构建输出
【发布时间】:2017-10-02 16:09:00
【问题描述】:

是否可以保存在终端中运行的 bazel 构建命令的输出?命令是:

bazel build tensorflow/examples/image_retraining:label_image && 
bazel-bin/tensorflow/examples/image_retraining/label_image 
--graph=/tmp/output_graph.pb 
--labels=/tmp/output_labels.txt 
--output_layer=final_result:0 
--image=$HOME/Desktop/Image-3/image1.png

我想将输出保存到 .txt 文件;我不能简单地将 > out.txt 标记到行尾,否则会出错。但是有 bazel-output 命令吗?

【问题讨论】:

  • 提示:可以使用bazel run :binary -- --arg1=foo, --arg2=bar

标签: tensorflow terminal bazel


【解决方案1】:

最新的bazel 命令的标准输出记录在您的 WORKSPACE 的输出库中:

$ echo $(bazel info output_base)
/home/username/.cache/bazel/_bazel_username/3e8af127f8b488324cdf41111355ff4c

确切的文件是command_log:

$ echo $(bazel info command_log)
/home/username/.cache/bazel/_bazel_username/3e8af127f8b488324cdf41111355ff4c/command.log

【讨论】:

  • command_log 截断到最后一个 INFO 行。之后的一切都丢失了。
  • @jin 你确定吗?刚试了一下,发现里面只有同一个文件的名字
  • @Ittai 是的。 bazel info command_log 本身是一个 bazel 命令,因此您不能使用 echo $(bazel info command_log) 打印 last bazel 调用的内容。您必须使用确切的路径。
  • 这个文件也可以通过这样的方式访问,假设你在你的 git repo 的根目录中:build/bin/../../../../../command.log
【解决方案2】:

你可以通过管道输出到文本文件和命令行来做到这一点,但只能在 linux 上。你只需在末尾附加这个2>&1 | tee file_name.log

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 2023-02-16
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    相关资源
    最近更新 更多