В зависимости от apache_beam из проекта Bazel - PullRequest
0 голосов
/ 09 октября 2019

Я создаю Bazel Python проект, который зависит от apache_beam SDK. В файле WORKSPACE моего проекта я скачал zip-файл apache_beam через http_archive.

Всякий раз, когда я пытаюсь получить доступ к подпакету apache_beam.testing в моем проекте, я получаю сообщение об ошибке

ModuleNotFoundError: No module named 'apache_beam.testing'

import apache_beam хотя работает нормально.

WORKSPACE:

<pre><code>http_archive(
    name = "apache_beam",
    urls = ["https://github.com/apache/beam/archive/master.zip"],
    strip_prefix = 'beam-master/sdks/python',
    build_file = str(Label("//third_party:apache_beam.BUILD")),
)
</code>
apache_beam.BUILD:
py_library(
    name = "apache_beam",
    srcs = glob(["apache_beam/**/*.py"]),
    visibility = ["//visibility:public"],
)
Файл BUILD проекта:
py_test(
    name = "project",
    srcs = ["project.py"],
    deps = [
        "@apache_beam//:apache_beam",
    ],
Файл project.py:
from apache_beam.testing import util

1 Ответ

0 голосов
/ 14 октября 2019

В apache_beam.BUILD необходимо установить атрибут imports:

py_library(
    name = "apache_beam",
    srcs = glob(["apache_beam/**/*.py"]),
    visibility = ["//visibility:public"],
    imports = "apache_beam",
)
...