如果这个调用来自_pb2.py文件,那么你生成的代码已经过时了,必须使用protoc >= 3.19.0重新生成。 点击复制后,将打开C知道体验页
时间: 2023-06-16 09:06:01 浏览: 555
谢谢提醒!这个错误提示意味着你使用的是过时的 protobuf 版本,需要升级到 3.19.0 或更高版本。你需要使用以下命令来安装最新版本的 protobuf:
```
pip install protobuf --upgrade
```
然后,使用最新版本的 protoc 重新生成 _pb2.py 文件即可。如果你使用的是 Python 3,你需要使用以下命令生成 _pb2.py 文件:
```
python -m grpc_tools.protoc --proto_path=<proto_dir> --python_out=<python_out_dir> --grpc_python_out=<python_out_dir> <your_proto_file>.proto
```
其中,`<proto_dir>` 是你的 .proto 文件所在的目录,`<python_out_dir>` 是你要生成的 Python 文件所在的目录,`<your_proto_file>.proto` 是你要编译的 .proto 文件名。
相关问题
protoc >= 3.19.0 重新生成,这个怎么做
要重新生成protobuf代码,确保你已经安装了protoc工具,并且版本号大于等于3.19.0。以下是一般的步骤:
1. 下载并安装最新版本的protobuf编译器protoc。你可以从官方网站(https://github.com/protocolbuffers/protobuf/releases)或者其他适合你操作系统的渠道获取安装包。
2. 确认protoc可执行文件已经添加到系统的路径中,这样你就可以在命令行中直接使用protoc命令。
3. 在你的protobuf定义文件(通常是以`.proto`为扩展名的文件)所在的目录中,使用命令行执行以下命令:
```
protoc --version
```
确保输出的版本号大于等于3.19.0,这表示你已经成功安装了符合要求的protoc工具。
4. 使用protoc命令重新生成代码。假设你有一个名为`example.proto`的protobuf定义文件,执行以下命令生成代码:
```
protoc --proto_path=path/to/protobuf/files --python_out=path/to/output/directory example.proto
```
上述命令中,`--proto_path`指定了protobuf定义文件的路径,`--python_out`指定了生成的代码输出目录,`example.proto`是你的protobuf定义文件名。
根据你的实际情况,可能需要调整命令中的路径和参数。
请注意,以上步骤是针对Python代码生成的示例,如果你需要生成其他编程语言的代码,可以参考对应的命令行参数和选项。
希望以上信息对你有所帮助!
TypeError: Descriptors cannot not be created directly. If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
这个错误通常是由于Protobuf版本不兼容引起的,您需要使用协议缓冲区3.19.0或更高版本重新生成_pb2.py文件。您可以使用以下命令生成新的_pb2.py文件:
```
protoc --python_out=. your_proto_file.proto
```
请确保您已经安装了协议缓冲区3.19.0或更高版本,如果未安装,可以使用以下命令进行安装:
```
pip install protobuf
```