Hi!

I need create script (python) to build python classes from set of proto 
files.

I found example here grpc_tools/command.py#L35 
<https://github.com/grpc/grpc/blob/5253c8f9a899450397a5e46e4923d01ac9a66a27/tools/distrib/python/grpcio_tools/grpc_tools/command.py#L35>

I took the code 

> from grpc_tools import protoc 

... 
>
for file_name in proto_file_names:
>     file_path = os.path.join(proto_dir, file_name)
>     check_path_exist(file_path)
>     proto_files.append(file_path)
>
> for proto_file in proto_files:
>     command = [
>                   'grpc_tools.protoc',
>                   '--proto_path={}'.format(proto_path),
>                   '--python_out={}'.format(current_directory),
>                   '--grpc_python_out={}'.format(current_directory),
>               ] + [proto_file]
>     if protoc.main(command) != 0:
>         sys.stderr.write('warning: {} failed\n'.format(command))
>


and get following errors while run script (I have a lot of such)

> google/protobuf/descriptor.proto: File not found.
> full/path/to/my/file.proto: Import "google/protobuf/descriptor.proto" was 
> not found or had errors.
> full/path/to/my/file.proto:45:8: "google.protobuf.EnumValueOptions" is not 
> defined.
> full/path/to/my/file.proto: "google.protobuf.EnumValueOptions" is not 
> defined.
> full/path/to/my/file.proto: "google.protobuf.EnumValueOptions" is not 
> defined.
> full/path/to/my/file.proto:51:8: "google.protobuf.EnumOptions" is not 
> defined.
>

But when I run command line

> python -m grpc_tools.protoc -I../../.. --python_out=. --grpc_python_out=. 
> path/to/my/files/*.proto
>

All is ok. There are no any errors.

Same issue appears for any single proto file (not full set) containing some 
imports.

I think it somehow related to import paths but I can not find way to fix 
it. All parameters and current working directory for both (command line and 
python script) ways are the same.

-- 
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 post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/9857c352-b4c3-43bd-a862-92f1812c22b7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to