对不同的Bazel规则使用不同的python版本的方法

时间:2017-11-08 16:25:22

标签: python bazel

我能够让py_runtime指向正确的python解释器, 但是现在我希望能够使用python 3作为我的Bazel规则,并且python 2用于为python 2编写的现有Bazel规则。鉴于下面的py_runtime,我如何将它添加到py_library以便它在python 3上运行其他一切都在python 2上运行?

py_runtime(
    name = "python-3.6",
    files = [],
    interpreter = "python3interpreter",
)

py_runtime(
        name = "python-2.7",
        files = [],
        interpreter = "python2interpreter",
    )

py_library(
    name = "foo",
    srcs = ["foo.py"]
)

1 个答案:

答案 0 :(得分:0)

首先使用py_runtime_pair来定义PY2和PY3工具链。然后注意,只有py_binary附加了python_version,没有附加库。这是因为库可以与PY2和PY3兼容。尽管对于py_library,您必须正确定义deps。您必须在select上使用python_version才能获得正确的部门。