I want to compile protobuf libraries for google object detection API. I followed the official tutorial and typed protoc object_detection/protos/*.proto --python_out=.. Then what I got is "object_detection/protos/*.proto: Invalid argument". Can anyone tell me what should I do? Thanks!
            Asked
            
        
        
            Active
            
        
            Viewed 4,438 times
        
    3
            
            
        
        sean
        
- 49
 - 1
 - 8
 
- 
                    I solve this problem by compile the .proto files one by one. I think the problem is the *. I am using win10 system. But still wonder is there a way in windows that I can compile all the .proto files with one command. Compiling them one by one is too silly. – sean Sep 04 '17 at 14:48
 
3 Answers
1
            If your operating system is windows, then *. may not work. A good way to solve this problem is to use bash. Download git for windows, don't forget to select git bash when you install it. From tensorflow/models/research/, right click, select git bash, then paste the command, it works well on my laptop.
        ZhangGa
        
- 36
 - 2
 
- 
                    to check if you have correctly protoced the proto files, go to the tensorflow/models/research/object_detection/protos, you will see many py scripts protoced from the proto files. – ZhangGa Nov 18 '17 at 03:53
 
0
            
            
        Try
protoc --python_out=. object_detection/protos/*.proto
Usage:
protoc [OPTION] PROTO_FILES
        Tomasz Jakub Rup
        
- 10,502
 - 7
 - 48
 - 49
 
- 
                    Probably shell (`cmd`?) doesn't expand `*.proto` to files. Try other shell or `protoc --python_out=. 1.proto 2.proto 3.proto` – Tomasz Jakub Rup Sep 04 '17 at 16:05
 - 
                    That results in this for me: `File does not reside within any path specified using --proto_path (or -I). You must specify a --proto_path which encompasses this file. Note that the proto_path must be an exact prefix of the .proto file names -- protoc is too dumb to figure out when two paths (e.g. absolute and relative) are equivalent (it's harder than you think).` – MrChadMWood Aug 14 '23 at 19:22
 
0
            
            
        I know this is a late answer but after some 20 minutes trying out different things, i decided to try it on another terminal and i tried it on git bash.
You need to be in the correct directory so just cd into /models-master/research and make a folder named 1prts using mkdir once you are inside the research directory.
Since the last release, the repos has changed so this is the command you need to run:
protoc object_detection/protos/*.proto --python_out=./1prts
        SuperSimplePimpleDimple
        
- 546
 - 1
 - 4
 - 20