protocolbuffers/protobuf

Plugins passed as --plugin not searched from PATH

Open

#10,302 opened on Jul 22, 2022

View on GitHub
 (4 comments) (0 reactions) (0 assignees)C++ (16,128 forks)batch import
help wantedprotoc

Repository metrics

Stars
 (71,223 stars)
PR merge metrics
 (Avg merge 2d 11h) (185 merged PRs in 30d)

Description

When extracting plugins such as the ones published from gRPC mainline, the folder contains file formatted like grpc_python_plugin. With this folder on PATH, I would expect --plugin=protoc-gen-grpc_python=grpc_python_plugin to work, but it seems this argument requires an exact path. This appears to be an explicit decision.

https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/compiler/command_line_interface.cc#L2292

I feel like sourcing from PATH could be more convenient for this, but if going with the current behavior, at least the error message needs to be changed for this codepath because currently it implies that PATH should work.

protoc --grpc_python_out=build/python --plugin=protoc-gen-grpc_python=grpc_python_plugin testdata/helloworld.proto
grpc_python_plugin: program not found or is not executable
Please specify a program using absolute path or make sure the program is available in your PATH system variable

Contributor guide