bazel如何选择python版本?

Mar*_*ark 11 bazel

我正在运行一个 python 二进制目标,并且bazel run xxx在我正在执行的目标中print(sys.version)。这输出Python version 3.6.8 (default, Jan 14 2019, 11:02:34)

当我python直接输入命令时,我得到Python 3.7.3 (default, Apr 3 2019, 19:16:38)

bazel 为什么/如何选择不同的 python 版本?

小智 0

Bazel会根据构建的配置选择不同的python版本。如果没有覆盖任何内容,bazel 将使用其默认的 python 版本。--python_version=<some_version>这可以通过运行 bazel 命令时传递来覆盖。

https://docs.bazel.build/versions/master/be/python.html#py_binary.python_version https://github.com/bazelbuild/rules_python/blob/120590e2f2b66e5590bf4dc8ebef9c5338984775/python/BUILD#L43

  • “如果没有任何内容被覆盖,bazel 将使用其默认的 python 版本”这是如何工作的?默认值在哪里定义?,您提供的链接显示“默认值是 `_INTERNAL_SENTINEL`”,这是为什么?另外,“python_version”的有效值似乎是“PY2”和“PY3”,哪个Python 3版本?为什么在原来的问题中是“3.6.8”而不是“3.7.3”? (12认同)