无法解析bazel py_测试对cc_库的依赖关系

2024-10-03 21:36:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我定义了一个动态链接的cc_库,它包含python绑定代码,因此可以作为python模块加载。现在,我想用python编写使用该模块的测试

cc_library(
    name = "rel_py",
    srcs = [
      "foo.cpp",
    ],
    linkstatic=False,
    copts = [
        "-fPIC",
    ],
    visibility = ["//visibility:public"],
)
py_test(
    name = "integration_test",
    srcs = ["integration_test.py"],
    #imports = ["../../_solib_k8"],
    data=[":rel_py"],
)

集成_test.py:

 import librel_py as myLib

我通过py_test的data属性指定依赖关系。但我不知道如何访问生成的库。在bazel out中,创建了librel_py.so,但在integration_test.runfiles之外,我可以通过“导入”访问该库。此外,还有一个文件夹__main__/_solib_k8,其中有一个库的副本,但名称“奇怪”(librelpy_Slibrel_Upy.so)。如果我在python脚本中尝试import librelpy_Slibrel_Upy,python可以找到该文件,但无法导入它,因为公开的符号的名称不同

如何以正确的方式对这种依赖性建模,有什么线索吗?_solib_k8文件夹和库的不同名称的用途是什么


Tags: 模块namepytestimport名称dataintegration