python中的Protobuf文件版本控制

Posted

技术标签:

【中文标题】python中的Protobuf文件版本控制【英文标题】:Protobuf files versioning in python 【发布时间】:2021-02-08 02:53:06 【问题描述】:

我在protobuf 文件中编写grpc 接口和消息,最终我将对接口和消息进行重大更改。

如何在 python 中处理protobuf 版本控制?


C# 中,recommended 使用带有版本号的可选包说明符, 然后将包名与服务名结合起来标识一个服务地址。

类似这样的:

syntax = "proto3";
package my_grpc_package.v1;
syntax = "proto3";
package my_grpc_package.v2;

但是我在 python 中read 那个

在 Python 中,package 指令被忽略,因为 Python 模块是根据它们在文件系统中的位置来组织的。

所以我不确定如何实现类似的功能?在单独的文件中再次生成grpc 客户端并将其命名为my_grpc_package.v2.py 手动?

【问题讨论】:

【参考方案1】:

是的。版本号可以包含在文件路径中,gRPC repo 本身也使用这种方式来组织它的 proto 文件:https://github.com/grpc/grpc/tree/master/src/proto/grpc/health/v1

【讨论】:

好像他们不为everything这样做

以上是关于python中的Protobuf文件版本控制的主要内容,如果未能解决你的问题,请参考以下文章

protobuf-net、版本控制和代理类型的最佳实践

python 3.7使用protobuf-3.17.3版本

如何使用自定义protobuf构建tensorflow 1.13.1?

Google protobuf解析消息逻辑的版本问题

十IntelliJ IDEA 中的版本控制介绍(下)

protobuf 怎么查看版本