Python 告诉bazel将.so文件复制到py_库输出文件夹中?
我有一个py_库,它依赖于*.so文件。我有一个创建.so文件的cc_库规则。我将cc_库的名称添加到py_库的数据字段中,但是bazel没有将*.so的副本放入输出文件夹中Python 告诉bazel将.so文件复制到py_库输出文件夹中?,python,bazel,Python,Bazel,我有一个py_库,它依赖于*.so文件。我有一个创建.so文件的cc_库规则。我将cc_库的名称添加到py_库的数据字段中,但是bazel没有将*.so的副本放入输出文件夹中 cc_binary( name = "_python_api.so", linkshared = True, visibility = ["//visibility:public"], deps = [ "...", ], ) py_library( nam
cc_binary(
name = "_python_api.so",
linkshared = True,
visibility = ["//visibility:public"],
deps = [
"...",
],
)
py_library(
name = "python_api",
visibility = ["//visibility:public"],
imports = [
"python_api",
],
srcs = [
"python_api/python_api.py"
],
data = [
":_python_api.so",
],
)
py_binary(
name = "python_api_example",
srcs = [
"python_api_example.py",
],
deps = [
":python_api",
],
)
一切都编译正确。但是当我运行示例应用程序时,它说它找不到_python_api.so。我可以在输出文件夹中看到_python_api.so,只是与python_api.py不在同一文件夹中。如果我在与python_api.py相同的文件夹中创建一个到_python_api.so文件的符号链接,那么一切都可以正常工作
有没有办法告诉bazel这个so文件需要和python_api.py放在同一个文件夹中?让我印象深刻的是,您将库定义为
cc_binary
。当将库构建为cc_库
时,bazel的神奇包装python执行似乎能够从数据
属性中找到(import
)共享库。或者,至少我尝试了一个与您类似的小示例,其中提到了不同之处,并且它似乎在我的机器上按预期工作。:)