Python3 с Bazel 0.5.4 - жестко закодирован в исполняемый файл python?
Я поддерживаю проект, использующий Bazel 0.5.4, и его нужно запускать в среде, где его нет. Я хотел бы указать приложению на использование python3.
Эта проблема аналогична Bazel 0.26.1, использующему Python3 на py_test, но версия rules_python, упомянутая в этом билете, настолько нова, что несовместима с bazel 0.5.4.
ЦЕЛЬ: Выполнять команды python с помощью /usr/bin/python3, а не python.
Как есть, приложение дает сбой, когда не может найтиbazel build
завершается без проблем, ноbazel test
продолжает искать и терпит неудачу.
bazel test ... --test_output=all --python_top=//sandbox_app:python-3.8.10
...
/usr/bin/env: 'python': No such file or directory
================================================================================
INFO: Elapsed time: 0.658s, Critical Path: 0.10s
INFO: Build completed, 1 test FAILED, 2 total actions
//sandbox_app:sandbox_test FAILED in 0.1s
это не сработало
Следующая конфигурация работала для аналогичного пользователя, описанного здесь:https://groups.google.com/g/bazel-discuss/c/nVQ48R94S_8 Но даже послеbazel clean
, bazel по-прежнему продолжает вызыватьpython
при запуске тестов.
РАБОЧАЯ СРЕДА
git_repository(
name = "io_bazel_rules_go",
remote = "https://github.com/bazelbuild/rules_go.git",
tag = "0.5.4",
)
СТРОЙ.базел
package(default_visibility = ["//visibility:public"])
py_test(
name = "sandbox_test",
srcs = ["sandbox_test.py"],
default_python_version = "PY3",
srcs_version = "PY3",
)
py_runtime(
name = "python-3.8.10",
files = [],
interpreter_path = "/usr/bin/python3",
)
Детали версии:
$ bazel info release
release 0.5.4
Это сведет к минимуму сбои в работе приложения, если это можно будет сделать без обновления bazel.
песочница_test.py
#!/usr/bin/python3
import unittest
class SandboxTest(unittest.TestCase):
def testRunSandbox(self):
# Valid for Python 3, syntax error for python2
print(print("Hello, Python!"))
if __name__ == '__main__':
unittest.main()
Возможно связанные проблемы
https://github.com/bazelbuild/bazel/issues/4815https://github.com/bazelbuild/bazel/issues/200
Спецификация правил:
https://bazel.build/reference/be/python
Похожие проблемы: