Can you please include the runtime errors you're encountering?
On Wednesday, December 9, 2020 at 11:39:45 AM UTC-8 [email protected] 
wrote:

> The containerd project <https://github.com/containerd/containerd> doesn't 
> publish a Python package for its containerd gRPC-based API, so I want to 
> generate Python modules for it myself. For API version 1.3 of containerd, 
> the .proto files can be found in 
> https://github.com/containerd/containerd/tree/release/1.3/api. 
> Unfortunately, I'm hitting two road blocks when trying to generate Python 
> modules from the API .proto files and when to run them.
>
> For example, the some of the containerd API .proto files reference 
> protobuf plugin .proto files using an (for lack of a better term on my 
> side) absolute import path: api/events/container.proto 
> <https://github.com/containerd/containerd/blob/release/1.3/api/events/container.proto>
>  does 
> an:
>
> import weak "
> github.com/containerd/containerd/protobuf/plugin/fieldpath.proto";
>
> However, the Python grpc compiler always wants to resolve such references 
> in the local file system and containerd's source have 
> ./protobuf/plugin/fieldpath.proto 
> <https://github.com/containerd/containerd/blob/release/1.3/protobuf/plugin/fieldpath.proto>
>  -- 
> so this won't ever resolve correctly (using -I ...), because it lacks the 
> github.lcom/containerd/containerd path elements. Please note that the 
> Python grpc protocol compiler resolves such import paths in form of 
> chopping down the full import path into parts and then searching its -I 
> ... include directories.
>
> Trying the lazy route by simply copying over these sources into 
> inside vendor/github.com/... inside the containerd source tree will later 
> cause *runtime errors *when trying to use the generated Python modules: 
> this is because the grpc compiler considers the same containerd API .proto 
> file in two locations (paths) to be separate instances. In consequence we 
> get duplicate modules which unfortunately now try to register with grpc for 
> the same protocol element names. Consequently, the gRPC Python runtime thus 
> throws an error and terminates.
>
> How can I correctly get this resolved when using python3 -m 
> grpc.tools.protoc ...? What am I missing here or getting wrong?
>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/ce257795-7a29-4bdb-8bc9-57538c00eb33n%40googlegroups.com.

Reply via email to