protobuf가 C++ 백엔드를 사용하는지 확인
# (1) from google.protobuf.internal import api_implementation print("Protobuf Backend:", api_implementation.Type()) # "cpp"여야 함 # (2) import google.protobuf.pyext._message 에서 # import error가 발생한다면, C++ 백엔드 사용을 못하는 것임
- “import google.protobuf.pyext._message as message”를 실행했을때 import error가 발생하면 cpp backend가 없는 것임 - conda로 별도 가상환경을 만들고, “pip install protobuf”로 설치하거나 “conda install protobuf”로 설치하면 해당환경에서 cpp확장파일을 구할 수 있다.
- 확장 파일(so 또는 pyd 확장자)을 구했다면 실행하려는 환경의 “lib/site-packages/google/protobuf/pyext/“에복사하면 cpp 확장 사용가능하다.
C++ 백엔드를 사용하도록 강제 설정
# bash export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp # powershell $env:PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION="cpp"