问题标签 [protoc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
229 浏览

protocol-buffers - golang 中的 protoc 文档非常混乱

protoc 文档非常少。我经常看到这样的事情,但我找不到任何文档。

protoc -I routeguide/ routeguide/route_guide.proto --go_out=plugins=grpc:routeguide

  • plugins=grpc: 做什么?需要配合使用 go_out吗?如果是这样,我认为这很令人困惑,因为 go_out据说只是指定了输出目录。

https://github.com/golang/protobuf有这个例子。 protoc --go_out=plugins=grpc,import_path=mypackage:. *.proto

这更令人困惑,因为它有额外import_path的 . 根据文档,plugins=grpc,import_path=mypackage:被认为是附加参数(因为它以 : 结尾)并.表示输出目录。

这是对的吗?plugins=grpc我仍然不知道import_path=mypacakge该做什么。

0 投票
1 回答
3958 浏览

python - 从 object_detection.protos 导入 string_int_label_map_pb2 ModuleNotFoundError:

我在 github 的 python 中使用来自 tensorflow 的官方代码,但我没有通过该错误:

正如有人在这里建议的那样:

Tensorflow:没有属性“load_labelmap”

我变了

对此:

我在 Windows 10 上使用 Python 3.6.5、tensorflow 1.8。 *.proto 文件是用 protoc 3.4 编译的。

编辑:来自cmd的错误:

0 投票
1 回答
1856 浏览

ruby - 如何在 Ruby 中使用 Protocol Buffers 3?

我正在尝试在 Ruby 中使用 Protocol Buffers v3。

我使用标准protoc选项--ruby_out从文件生成 Ruby 源代码*.proto文件。这些生成的文件有require 'google/protobuf'要求,所以我需要使用google-protobufgem 来运行这个 Ruby 代码。

我正在阅读google-protobuf这里的文档:

https://developers.google.com/protocol-buffers/docs/reference/ruby-generated

但我没有看到任何从流(即标准输入)中解码 protobuf 数据包的选项?从标准缓冲区解码数据包可能很好,但是这个库是否支持从流中解码数据包?如果是,任何人都可以为我指出如何做到这一点的方向吗?

0 投票
4 回答
7861 浏览

python - ImportError:无法导入名称“input_reader_pb2”

在win10 64位上工作

当我试图训练我的模型时E:\projectx\model-master\models-master>python train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/ssd_mobilenet_v1_pets.config

出现这个错误

文件“train.py”,第 49 行,从 object_detection.builders 导入 dataset_builder 文件“C:\Users\DELL\AppData\Local\Programs\Python\Python36\lib\site-packages\object_detection-0.1-py3.6。 egg\object_detection\builders\dataset_builder.py”,第 27 行,从 object_detection.data_decoders 导入 tf_example_decoder 文件“C:\Users\DELL\AppData\Local\Programs\Python\Python36\lib\site-packages\object_detection-0.1- py3.6.egg\object_detection\data_decoders\tf_example_decoder.py",第 27 行,从 object_detection.protos import input_reader_pb2 ImportError: cannot import name 'input_reader_pb2'

我确实运行了 protoc 3.4 protoc object_detection/protos/*.proto --python_out=. ,但错误仍然存​​在我检查了所有东西,它应该很好并且可以工作,这让我发疯了!

请帮忙....谢谢

0 投票
1 回答
3645 浏览

tensorflow - protoc 和 protobuf(Protocol Buffer)有什么区别

可以澄清一下协议缓冲区和协议之间的区别吗?谷歌搜索只显示协议缓冲区。我看到 protobuf-programming language-version 和 protoc-operating system-86_32 的命名约定是不同的。它们是不同的还是相同的?

使用 tensorflow 时是否需要同时安装两者?虽然

是 3.6 但我的点在抱怨

0 投票
0 回答
935 浏览

c++ - 如何在 protoc 插入点(Protobuf)中插入包含?

我使用 .proto 文件生成 *.pb.h 和 *.pb.cc 文件protoc。问题是我无法导出 dll 来使用它,所以我使用以下方法重新生成了这些文件:
.\protoc.exe --proto_path=.\Proto\ --cpp_out=dllexport_decl=MY_EXP:.\generated .\ABS.proto
多亏了这一点,我在所有正确的地方使用MY_EXP生成了代码,但我无法强制生成 .pb.h #include 一个定义MY_EXP.
但是,生成的代码包含字段:@@protoc_insertion_point(includes)这意味着我可能可以添加其他包含,但我无法理解如何在我的代码中自动生成这些缺失的包含。
谢谢。

0 投票
1 回答
316 浏览

gradle - 在 gradle 中为插件添加选项

我正在使用 gradle 插件 'com.google.protobuf:protoc:3.6.0'.java从文件中生成我的.proto文件。

此外,我想为我的.proto文件生成文档。为此,我找到了 protoc-gen-doc.exe。使用以下命令在命令行中可以正常工作:

在我的 gradle 脚本中,我有以下任务:

如何将--doc_outand--doc_opt参数传递给插件?

0 投票
1 回答
370 浏览

shell - Scons:如何为第 3 方编译结果指定文件依赖项?

在我看来,scons 目标不是按声明顺序生成的。我的问题是,我需要先生成一些代码,我正在使用 protoc 将 my.proto 文件处理为 .h 和 .cc 文件,我需要一些这样的伪代码(工作代码应该是什么样的?)

我的问题是:

  1. 如何在 SConstruct/SConscript 中指定 protoc 的 ShellExecution?

  2. 如何确保'main.cpp'的编译依赖于'my.cc'的存在,即等到'my.cc'生成后再执行?

0 投票
1 回答
155 浏览

dart - 将 'library' 指令添加到使用 protoc 生成的 dart 代码中

有人能告诉我如何让 protoc 使用领先的指令生成 dart 文件吗?

我正在使用 dart-protoc-plugin (v0.10.2) 从 proto 文件生成我的 dart、c++、c#、js 和 java 模型。我的印象是没有办法让 protoc 将“库”指令添加到生成的 dart 文件中,直到我注意到该指令出现在另一个项目中(参见date.pb.dart)。

如果我采用相同的文件(date.proto),我无法让 protoc 生成包含“库”指令的 dart 文件。

简而言之:我想取一个 .proto 文件,内容如下

并生成一个带有类似于以下代码段的前导“库”指令的 .dart 文件

注意:我不关心指令的实际值,因为我可以重组我的代码以获得所需的结果。我只需要一种方法让protoc添加库指令......

我用来生成飞镖文件的基本命令是

不幸的是,dart-protoc-plugin 的README不是很有帮助,我不得不通过源代码找出可用的选项;目前似乎唯一特定于 dart 的选项与 grpc 有关。

我尝试了其他语言的选项(例如“库”和“基本路径”),但没有任何成功。

如果可能的话,它将大大简化我的工作流程,但我开始觉得date.pb.dart中的库指令是在生成代码之后添加的......

0 投票
1 回答
376 浏览

makefile - “make”命令使用哪个协议?

我正在尝试构建生成强大面部地标的LAB 。

在安装指南中,它说需要安装 Caffe 先决条件,我检查了 CUDA 和 BLAS 是否已安装在我的 AWS EC2 实例上。

然后我 git cloned 并make在 LAB 中命名的克隆 git 文件夹下输入

但它返回以下错误

上面的错误看起来像我使用的是旧版本,libprotoc所以如果我输入which protoc它会返回

并且因为protoc --version它返回libprotoc 3.5.1

并且因为whereis protoc它返回

因此,因为看起来我有另一个协议,/usr/local/bin所以我检查了它的版本,通过/usr/local/bin/protoc --version它返回

在此我有两个问题:

1)我不知道我是否使用make了cmd,这是指哪个协议。2)我不知道错误需要哪个版本的protoc。

如何检查并获取有关上述两个问题的正确信息?