서론
python에서 gRPC를 사용하기 위해선 protobuf파일을 python파일로 buiild해야한다.
하지만 build명령어가 너무 길고 사용이 어려워 글을 작성하게 되었다.
protobuf file을 build하기 위해서는 grpcio-tools가 필요하다.
pip install grpcio-tools
protobuf build
python -m grpc_tools.protoc {proto_path}
다음 명령어를 통하여 build 할 수 있다.
하지만 option을 잘 사용하여야 원하는 위치에 원하는 파일을 불러올 수 있다.
- -I{path} : proto file import 경로이다.
여러 경로를 설정 할 수 있으며, proto file내에서 이 경로로 다른 proto file을 import해야한다.
하지만 pb2_grpc.py가 생성될 때 proto file의 import경로의 맞추어 생성되니
'-I.'으로 설정하고 proto file을 작성할 때 import경로를 절대경로로 맞추어야 pb2_grpc.py에서 절대경로를 사용하여 import한다.
- --python_out={pb2_path} : pb2.py를 생성하는 경로를 설정한다.
proto_path를 기준으로 생성되나 '--python_out=.'으로 설정하여 proto file옆에 생성하는 것이 맘편하다.
pb2.py는 protobuf의 python객체들이 선언되어 있다.
- --grpc_python_out={pb2_path} : pb2_grpc.py를 생성하는 경로를 설정한다.
proto_path를 기준으로 생성되나 '--grpc_python_out=.'으로 설정하여 proto file옆에 생성하는 것이 맘편하다.
pb2_grpc.py는 gRPC stup과 service들이 선언되어 있다.
첨언
딸깍으로 protobuf를 build할 수 있는 builder를 만들 계획이다.