I have also tried to remove google.protobuf package path 

syntax = "proto3";
import "google/protobuf/any.proto";

message ErrorStatus {
  string message = 1;
  google.protobuf.Any details = 2;  --> changed to "Any details = 2;"  
}

And get the following errors:

protoc -I=.  --python3_out=python/ protobuftest.proto
protobuftest.proto:6:3: "Any" is not defined.
protobuftest.proto: warning: Import google/protobuf/any.proto but not used.


On Monday, December 25, 2017 at 12:27:40 PM UTC+8, Delvin Pan wrote:
>
> I have debug the code in 
> "/usr/local/lib/python3.5/dist-packages/protobuf3/compiler/__init__.py" and 
> here is what I have found:
>
> (1)  in "file_to_import = 
> splitext(self.__tle_map[top_level_name])[0].replace('/', '.')"
>
> top_level_name is "google"
>
> self.__tle_map is 
> [INFO] 2017-12-25 12:22:59,476 MainThread __init__.py 149 tle_map: {'Any': 
> 'google/protobuf/any.proto', 'ErrorStatus': 'protobuftest.proto'}
>
> obviously, top_level_name is "Any" will be the correct answer. 
> In the protobuftest.proto,  the message is "google.protobuf.Any" and the 
> first word "google" is taken as top_level_name.
> It seems, there should be a lack of strip to the package names .
>
> Not quite sure. Hope any one is interested in this problem.
>
> Merry Christmas and Happy New Year !
>
> best
> Delvin 
>
>
> On Monday, December 25, 2017 at 12:18:29 PM UTC+8, Delvin Pan wrote:
>>
>> Hi All,
>>
>> I have been using protobuf3 for a while and it works most of time, until 
>> I try to use package google.protobuf.timestamp.
>>
>> Here is the problems:
>>
>> os : ubuntu 16.04
>>
>> protoc installment : follwing the instruments in  
>> https://gist.github.com/sofyanhadia/37787e5ed098c97919b8c593f0ec44d8
>>
>> python protobuf3 installment:  sudo pip3 install protobuf3
>>
>> test code: protobuftest.proto  in the attachment
>>
>> cmd to run: 
>>
>> protoc -I=.  --python3_out=. protobuftest.proto
>>
>> Result: 
>>
>> Traceback (most recent call last):
>>   File "/usr/local/bin/protoc-gen-python3", line 36, in <module>
>>     compiler = Compiler(desc_map[file_name], top_level_elements)
>>   File 
>> "/usr/local/lib/python3.5/dist-packages/protobuf3/compiler/__init__.py", 
>> line 54, in __init__
>>     self.process_message(message)
>>   File 
>> "/usr/local/lib/python3.5/dist-packages/protobuf3/compiler/__init__.py", 
>> line 104, in process_message
>>     self.process_field(message.name, field, embedded)
>>   File 
>> "/usr/local/lib/python3.5/dist-packages/protobuf3/compiler/__init__.py", 
>> line 148, in process_field
>>     file_to_import = 
>> splitext(self.__tle_map[top_level_name])[0].replace('/', '.')
>> KeyError: 'google'
>> --python3_out: protoc-gen-python3: Plugin failed with status code 1.
>>
>> Thanks a lot for your help.
>>
>> best
>> Delvin
>>
>>
>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" 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/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to