我正在使用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
函数将不再可用(如错误消息所述),那么如何在构建后导入它。
答案 0 :(得分:0)
对于将来的读者来说,我能够通过 not bazel build
将其放入.par
中来解决此问题。