Базель меняет имя файла .so, делая его не импортируемым - PullRequest
1 голос
/ 05 июня 2019

Я использую bazel для создания простого скрипта на Python с

py_binary(
   name = "test",
   srcs = ["test.py"],
   data = ["bpy.so"],
   python_version = 'PY3',
)

Как видно, я надеюсь, что смогу импортировать bpy, библиотеку, которую я построил в соответствии с https://wiki.blender.org/wiki/Building_Blender/Linux/Ubuntu.

Мне удалось найти его после blaze build, но его имя уже не bpy.so, а bpy__py_binary_resource_test__h6PPJs.so. Так что теперь, когда я попытался импортировать его, я получаю

ImportError: dynamic module does not define init function (initbpy__py_binary_resource_test__h6PPJs)

Мои вопросы

(1) Является ли data = ["bpy.so"] правильным способом убедиться, что я могу импортировать bpy на удаленный компьютер после blaze build? Мне всегда странно использовать ключевое слово data для библиотеки ...

(2) Если это правильный путь, как мне импортировать его после сборки, так как имя файла изменилось и функция init внутри больше не будет доступна (как сказано в сообщении об ошибке).

1 Ответ

0 голосов
/ 07 июня 2019

Для будущих читателей я смог решить эту проблему, не bazel build, превратив ее в .par.

...