为不同的Bazel规则使用不同python版本的方法
我能够得到一个py_运行时来指向正确的python解释器, 但现在我希望能够将Python3用于我的Bazel规则,将Python2用于为Python2编写的现有Bazel规则。给定下面的py_运行时,如何将其添加到py_库中,使其在python 3上运行,而其他一切都在python 2上运行为不同的Bazel规则使用不同python版本的方法,python,bazel,Python,Bazel,我能够得到一个py_运行时来指向正确的python解释器, 但现在我希望能够将Python3用于我的Bazel规则,将Python2用于为Python2编写的现有Bazel规则。给定下面的py_运行时,如何将其添加到py_库中,使其在python 3上运行,而其他一切都在python 2上运行 py_runtime( name = "python-3.6", files = [], interpreter = "python3interpreter", ) py_run
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"]
)
首先,使用
py_runtime_pair
来定义PY2和PY3工具链。然后请注意,只有py_binary
附加了python_version
,而不是库。这是因为库可以与PY2和PY3兼容。尽管对于py_库
,您必须正确定义deps
。您必须在python_version
上使用select
来选择正确的dep。FYI,这是Bazel python SIG正在探讨的主题之一: