所以我试图将 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
但现在我有兴趣在执行此脚本的同时为其设置 bazel 目标,例如:
#BUILD
py_binary(
name = "binary1",
srcs = ["main.py"],
main = "main.py",
visibility = ["//public"],
)
有没有办法使用类似的东西来运行该脚本:
bazel run //path/to/py_binary --arg1=val1
如果不是在使用此 bazel 目标时运行该 python 脚本的替代方法是什么?
PS我正在使用Python 3.5+