Bazel更改了.so的文件名,使其无法导入

时间:2019-06-05 01:35:27

标签: python bazel

我正在使用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用于lib ...

(2)如果这是正确的方法,由于文件名已更改并且内部的init函数将不再可用(如错误消息所述),那么如何在构建后导入它。

1 个答案:

答案 0 :(得分:0)

对于将来的读者来说,我能够通过 not bazel build将其放入.par中来解决此问题。