首页 > 解决方案 > Bazel 语言和语言环境

问题描述

在我的 bazel 设置中运行s 时,我遇到了与此类似的python 错误。genrule

此错误的根本原因是某些语言环境变量未按预期设置,因此未使用正确的编码读取文件。

环境

build --action_env="LANG=en_GB.UTF-8"
run --action_env="LANG=en_GB.UTF-8"
test --action_env="LANG=en_GB.UTF-8"

在我.bazelrc是一种解决方法,但感觉有点hacky。为 genrules 配置 bazel 的语言/区域设置的最佳方法是什么?

标签: linuxbazel

解决方案


--action_dev/--test_env是传入环境变量的唯一方法。它可以在命令中指定.bazelrc或设置为参数bazel

或者,如果您只需要为特定设置 env 变量genrule,您可以在genrule. 注意:FOO=bar_cmd

genrule(
    name = "foo",
    srcs = [],
    outs = ["foo.h"],
    cmd = "FOO=bar ./$(location create_foo.pl) > \"$@\"",
    tools = ["create_foo.pl"],
)

推荐阅读