Bazel语言和语言环境

时间:2019-02-01 11:04:46

标签: linux bazel

在bazel设置中运行genrule时遇到了python错误similar to this

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

设置

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中的

是一种解决方法,但感觉有些古怪。为Genrules配置bazel的语言/区域设置的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

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

或者,如果您只需要为特定的genrule设置env变量,则可以在genrule中显式地进行设置。请注意FOO=bar中的cmd

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