python – 嵌套的Bazel项目

前端之家收集整理的这篇文章主要介绍了python – 嵌套的Bazel项目前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试构建一个使用TensorFlow服务的项目,所以我创建了一个带有WORKSPACE文件的目录my_dir,将服务repo克隆到其中,将我的自定义文件放入my_project目录,在tensorflow_serving中配置tensorflow,从my_dir构建tensorflow服务/服务

bazel build //tensorflow_serving/...

那里的一切都很好,然后我尝试构建一个模仿mnist_export的python文件并将其放在my_dir中并生成一个BUILD文件

py_binary(
   name = "export_cnn",srcs = [
       "export_cnn.py",],deps = [
       "@tf//tensorflow:tensorflow_py","@tf_serving//tensorflow_serving/session_bundle:exporter",)

但是,当我跑

bazel build //my_project:export_cnn

我收到以下错误

ERROR: 

.../bazel/_bazel_me/3ef3308a843af155635e839105e8da5c/external/tf/tensorflow/core/BUILD:92:1: null Failed: protoc Failed: error executing command bazel-out/host/bin/external/tf/google/protobuf/protoc '--cpp_out=bazel-out/local_linux-fastbuild/genfiles/external/tf' -Iexternal/tf -Iexternal/tf/google/protobuf/src ... (remaining 1 argument(s) skipped).
tensorflow/core/framework/step_stats.proto: File not found.
tensorflow/core/framework/device_attributes.proto: File not found.
tensorflow/core/framework/graph.proto: File not found.
tensorflow/core/framework/tensor.proto: File not found.
tensorflow/core/protobuf/config.proto: File not found.
tensorflow/core/protobuf/worker.proto: Import "tensorflow/core/framework/step_stats.proto" was not found or had errors.
tensorflow/core/protobuf/worker.proto: Import "tensorflow/core/framework/device_attributes.proto" was not found or had errors.
tensorflow/core/protobuf/worker.proto: Import "tensorflow/core/framework/graph.proto" was not found or had errors.
tensorflow/core/protobuf/worker.proto: Import "tensorflow/core/framework/tensor.proto" was not found or had errors.
tensorflow/core/protobuf/worker.proto: Import "tensorflow/core/protobuf/config.proto" was not found or had errors.
tensorflow/core/protobuf/worker.proto:41:12: "DeviceAttributes" is not defined.
tensorflow/core/protobuf/worker.proto:64:3: "GraphDef" is not defined.
tensorflow/core/protobuf/worker.proto:72:3: "GraphOptions" is not defined.
tensorflow/core/protobuf/worker.proto:141:3: "TensorProto" is not defined.
tensorflow/core/protobuf/worker.proto:180:3: "StepStats" is not defined.
tensorflow/core/protobuf/worker.proto:225:3: "BusAdjacency" is not defined.
tensorflow/core/protobuf/worker.proto:227:3: "BusAdjacency" is not defined.
tensorflow/core/protobuf/worker.proto:232:3: "TensorProto" is not defined.
tensorflow/core/protobuf/worker.proto:272:3: "StepStats" is not defined.

在我的WORKSPACE文件中,我有以下内容

local_repository(
  name = "tf",path = __workspace_dir__ + "/serving/tensorflow",)

local_repository(
  name = "tf_serving",path = __workspace_dir__ + "/serving",)

load('//serving/tensorflow/tensorflow:workspace.bzl','tf_workspace')
tf_workspace("serving/tensorflow/","@tf")

我的假设是因为tensorflow是一个子子项目,所以它不会将其生成文件放在祖父项目中.但是,我尝试过很多东西,但却无法让它发挥作用.

最佳答案
我在一个文件夹中提供tensorflow,在另一个文件夹中提供我的项目.这是我的WORKSPACE文件

workspace(name = "my_project")

local_repository(
  name = "org_tensorflow",path = __workspace_dir__ + "/tf-serving/tensorflow/",path = __workspace_dir__ + "/tf-serving/",)

load('//tf-serving/tensorflow/tensorflow:workspace.bzl','tf_workspace')
tf_workspace("tf-serving/tensorflow/","@org_tensorflow")

# ===== gRPC dependencies =====

bind(
    name = "libssl",actual = "@boringssl_git//:ssl",)

bind(
    name = "zlib",actual = "@zlib_archive//:zlib",)

我还将zlib.BUILD从tensorflow服务复制到我有WORKSPACE文件的同一个地方.

我的项目中的BUILD文件具有此规则(与您的类似):

py_binary(
    name = "export_model",srcs = [
        "export_model.py",deps = [
        "@org_tensorflow//tensorflow:tensorflow_py",)

我和我的代码之间的区别在于我将依赖项包含在我的根WORKSPACE中.这段代码在一台机器上编译和工作正常我有一些问题要在其他机器上编译它(ubuntu 14.04)因为一个依赖.我希望这个对你有用.

原文链接:https://www.f2er.com/python/438565.html

猜你在找的Python相关文章