如何解决Bazel,如何将 C++ 内置的 Python 库添加到 Python 二进制文件中?
我有一个带有如下构建的 Python 绑定的 C++ 库,以及一个需要导入生成的 libperceptionPybind.so
的 Python 二进制文件。
package(default_visibility = ["//visibility:public"])
load("@pip_pybind//:requirements.bzl","requirement")
cc_binary(
name = "perceptionPybind",srcs = ["perceptionPybind.cpp"],deps = [
"@pybind11","@libtorch_cpu//:torch_cpu",],linkshared = True,)
py_binary(
name = "TestperceptionPybind",srcs = [ "TestperceptionPybind.py" ],deps = [
":perceptionPybind"
requirement("numpy"),requirement("torch")
],)
我看到 libperceptionPybind.so 已在我的 bazel-bin/pybind
文件夹中生成。如您所见,我尝试将 perceptionPybind
添加到 deps,但出现错误:
//pybind:perceptionPybind' does not have mandatory providers: 'py' or 'PyInfo
解决方法
您可以使用 data
字段将动态库复制到 Python 二进制目标文件夹中:
py_binary(
name = "TestPerceptionPybind",srcs = [ "TestPerceptionPybind.py" ],deps = [
requirement("numpy"),requirement("torch")
],data = [
":PerceptionPybind",],)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。