我有一个bazel文件,它必须加载两个不同的需求文件:
load("@python_turing_libs//:requirements.bzl", "requirement")或
load("@python_ampere_libs//:requirements.bzl", "requirement")我希望使用bazel平台通过以下方式实现这一点:
# Define GPU constraint values
constraint_setting(name = "gpu")
constraint_value(name = "turing", constraint_setting = "gpu")
constraint_value(name = "ampere", constraint_setting = "gpu")
constraint_value(name = "none", constraint_setting = "gpu")
# Platform
platform(
name = "gpu_server",
constraint_values = [
"@platforms//os:linux",
"@platforms//cpu:x86_64",
":gpu",
],
)
select({
"@platforms//os:linux":
load("@python_perception_libs//:requirements.bzl", "requirement")
,
"//conditions:default": [],
})syntax error at 'load': expected expression或者别的什么,但是很明显这个语法不起作用。
发布于 2022-04-18 20:11:32
没有一种机制可以有条件地从其他bzl文件加载,因此,可以加载两个文件,并使用select来选择这些文件中的不同内容。
一个问题是,符号在每个文件中都有相同的名称,要解决这个问题,您可以在文件中使用不同的符号来执行如下所示的加载:
load("@python_turing_libs//:requirements.bzl", turing_requirement = "requirement")
load("@python_ampere_libs//:requirements.bzl", ampere_requirement = "requirement")
your_rule(
...
some_attribute = select({
":turing_condition": turing_requirement,
":ampere_condition": ampere_requirement,
})
...
)https://stackoverflow.com/questions/71916276
复制相似问题