如何解决使用bazel py_binary传递python命令行参数
因此,我尝试将python和bazel结合使用,我想知道是否有一种方法可以在通过bazel目标运行该脚本时传递python脚本参数的值。
所以想法是:
我有一些main.py
文件,它接受args并执行一些逻辑
#main.py
import argparse
class ClassA:
def __init__(self,arg1):
pass
#incredible logic happens here :D
def parse_arguments():
parser = argparse.ArgumentParser(description="....")
parser.add_argument(
"--arg1",required=True)
if __name__ == "__main__":
ARGS = parse_arguments()
ClassA(ARGS.arg1) # will execute whatever has to happen and return something
通常,为了运行此脚本,我只需要运行以下内容:
python -m main.py --arg1=val1
但是现在我有兴趣在执行此脚本的同时为其设置目标,例如:
#BUILD
py_binary(
name = "binary1",srcs = ["main.py"],main = "main.py",visibility = ["//public"],)
是否可以使用类似以下的方式运行该脚本:
bazel run //path/to/py_binary --arg1=val1
如果不是,使用此bazel目标时运行该python脚本的替代方法是什么?
P.S。我正在使用Python 3.5 +
解决方法
您可以通过在要传递给二进制文件的命令行选项之前放置--
来实现此目的,例如:
bazel run //pkg:binary1 -- --arg1=val1
或
bazel run -- //pkg:binary1 --arg1=val1
请参见https://docs.bazel.build/versions/master/user-manual.html#run
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。