带有grpc_python_plugin的协议:google / protobuf / any.proto:找不到文件

时间:2018-10-12 19:14:43

标签: protocol-buffers

我正在运行以下命令:

protoc protobuf/file.proto --proto_path=protobuf --proto_path=protobuf --python_out=out/builtin_pb --grpc_out=out/builtin_pb --plugin=protoc-gen-grpc=/usr/local/bin/grpc_python_plugin

file.proto具有的位置:

syntax = "proto3";

import "google/protobuf/any.proto";

诸如此类的东西

google.protobuf.Any arg = 3;

但是,它有错误:

google/protobuf/any.proto: File not found.
bess_msg.proto: Import "google/protobuf/any.proto" was not found or had errors.
bess_msg.proto:251:3: "google.protobuf.Any" is not defined 
...

我可以采取任何步骤来确保正确安装any.proto吗?

谢谢

2 个答案:

答案 0 :(得分:2)

我最近遇到了这个问题,并意识到我正在使用protobuf 3.0。只需将protobuf编译器升级到最新版本(在我的情况下为3.6),以获取有关这些类型的定义。

答案 1 :(得分:0)

在Ubuntu上尝试将protobuf编译为python时出现此错误。我的问题是我使用import pandas as pd #import pandas df = pd.read_csv('your_data_file.csv') # read csv as a dataframe df['WEEKDAY'] = pandas.to_datetime(df['record_timestamp']).dt.dayofweek df["WEEKDAY"] = (df["WEEKDAY"] < 5).astype(float) 安装了编译器,但没有使用sudo apt install protobuf-compiler安装资源。

感谢this answer向我展示了自己的方式上的错误。