1

软件环境:Win10、Goland。
去版本:go1.9.1 windows/amd64。protoc --version: libprotoc 3.5.1 当我执行命令时。结果如下

protoc -I . --go_out=plugins=grpc: . proto/hello/hello.proto 
.: Permission denied

我试图以管理员身份运行。我可以完全控制所有文件。现在我该怎么办。

4

5 回答 5

1

我遇到过同样的问题。

我发现错误消息具有误导性。

这对我有用:

改变这个:

protoc -I . --go_out=plugins=grpc: . proto/hello/hello.proto 

对此:

protoc ./proto/hello/hello.proto --go_out=plugins=grpc:./outputDirectory -I ./proto/hello/hello.proto

该命令的某些部分显然看起来是多余的,但这是我必须做的才能让它工作。我建议尝试一下,看看它是否运行。如果是这样,那么你可以看看你是否能够调整它,但我不这么认为。

您绝对不应该将“proto/hello/hello.proto”作为输出,因为这实际上是您的输入文件。如果 ”。” 是你的输出,然后这样做:

protoc ./proto/hello/hello.proto --go_out=plugins=grpc:. -I ./proto/hello/hello.proto

请注意,您不需要空间。

于 2018-08-18T02:15:30.450 回答
0

为我工作:实际上已经存在的 hello.pg.go 必须被删除,因为即使给予完全访问权限,它也不允许被覆盖......在删除 hello.pb.go 和编译 .protoc 之后再次文件,出现一个新的 .pb.go 文件,现在可以通过以下命令多次覆盖它: protoc -I proto/ hello/hello.proto --go_out=plugins=grpc:hello

于 2020-04-12T06:50:40.207 回答
0

我真的不知道为什么权限被拒绝,但我有这个问题的解决方案。我的解决方案可能需要时间,但它会奏效。尝试将每个 protoc 文件一一转换为 py 文件,如

protoc object_detection/protos/model.proto --python_out=.

我这样解决我的问题 截屏

将文件转换为 py

于 2019-01-23T13:36:40.810 回答
0

我还收到了 Windows 中 protoc 拒绝的权限。我还能够根据@sohaib-anwaar 的注释生成单个文件

这个批处理脚本通过逐个迭代文件并发出 protoc 命令来节省大量输入。

for %i in (object_detection\protos\*.proto) do protoc object_detection\protos\%~nxi --python_out=.

执行后匹配的 *_pb2.py 文件将在 object_detection\protos 文件夹中找到。

于 2019-06-27T02:09:15.973 回答
0

该命令似乎格式不正确。如https://grpc.io/docs/tutorials/basic/go.html所述,格式如下 - protoc -I routeguide/ routeguide/route_guide.proto --go_out=plugins=grpc:routeguide

于 2018-03-14T17:52:04.153 回答