You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bazel py_binary的args字段传递命名参数无需bazel build传入

解决方法

你可以直接在py_binary规则的args列表中追加--somearg相关的参数配置即可,args字段中定义的所有元素都会按顺序作为默认命令行参数,在你执行bazel run启动该二进制时自动传入,不需要在bazel build或bazel run命令中额外指定。

场景1:--somearg是需要传值的参数

如果该参数需要携带指定值,直接按--somearg=参数值的格式写入args列表即可,修改后的py_binary规则示例如下:

py_binary(
    name = "mock",
    srcs = ["mock.py"],
    args = [
        "$(location @mockref//mockpackage)",
        "--somearg=你需要传入的参数值",
    ],
    data = [
        "@mockref//:mockfile",
    ],
    deps = [
        requirement("somerequirement"),
    ],
)

场景2:--somearg是无值的开关参数

如果该参数是不需要传值的布尔类型开关,直接把参数名写入列表即可:

py_binary(
    name = "mock",
    srcs = ["mock.py"],
    args = [
        "$(location @mockref//mockpackage)",
        "--somearg",
    ],
    data = [
        "@mockref//:mockfile",
    ],
    deps = [
        requirement("somerequirement"),
    ],
)

注意:args字段定义的参数仅在使用bazel run执行该目标时生效,如果你执行bazel build生成二进制文件后手动运行该文件,这些默认参数不会被自动携带,需要手动传入。

内容的提问来源于stack exchange,提问作者kartikeykant18

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 12:06:05