Установка пакетов Python с дополнительными функциями с помощью Bazel pip_parse

Я использую правила Python для Bazel для создания своих проектов на Python. Я использую pip_parse для установки пакетов pip, как описано в руководстве , но, похоже, это не работает для пакетов с дополнительными функциями.

Например, у меня есть следующая зависимость в файле requirements.txt:

      ray[air,data,default]==2.1.0

РАБОЧАЯ СРЕДА

      pip_parse(
    name = "pip",
    python_interpreter_target = interpreter,
    requirements_lock = "//python:requirements.txt",
)
load("@pip//:requirements.bzl", "install_deps")
install_deps()

СТРОЙ.базел

      load("@pip//:requirements.bzl", "requirement")

py_library(
    name = "lib",
    srcs = glob(["*.py"]),
    deps = [
        requirement("ray"),
    ],
)

py_binary(
    name = "app",
    srcs = ["app.py"],
    deps = [":lib"],
)

Когда я запускаю py_binary сbazel run :appЯ вижу следующую ошибку:

      File "/private/var/tmp/_bazel_andrii/.../app.py", line 2, in <module>
  import ray
File "/private/var/tmp/_bazel_andrii/...pip_ray/site-packages/ray/__init__.py", line 171, in <module>
  from ray import data  # noqa: E402,F401

ImportError: cannot import name 'data' from partially initialized module 'ray' (most likely due to a circular import)

Если я изменю BUILD.bazel, чтобы использовать требование какrequirement("ray[data]")Я вижу другую ошибку:

      invalid label '@pip_ray[data]//:pkg' in element 1 of attribute 'deps' in 'py_library' rule: invalid repository name '@pip_ray[data]': workspace names may contain only A-Z, a-z, 0-9, '-', '_' and '.'

Как установить и использовать пакеты pip с дополнительными функциями?

0 ответов

Другие вопросы по тегам