사용자 도구

사이트 도구


python:protobuf

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
python:protobuf [2025/03/20 03:48] – 만듦 rex8312python:protobuf [2025/03/25 09:14] (현재) rex8312
줄 3: 줄 3:
 protobuf가 C++ 백엔드를 사용하는지 확인 protobuf가 C++ 백엔드를 사용하는지 확인
 <code python> <code python>
 +# (1)
 from google.protobuf.internal import api_implementation from google.protobuf.internal import api_implementation
 print("Protobuf Backend:", api_implementation.Type())  # "cpp"여야 함 print("Protobuf Backend:", api_implementation.Type())  # "cpp"여야 함
 +
 +# (2)
 +import google.protobuf.pyext._message 에서 
 +# import error가 발생한다면, C++ 백엔드 사용을 못하는 것임
 </code> </code>
 +
 +- "import google.protobuf.pyext._message as message"를 실행했을때 import error가 발생하면 cpp backend가 없는 것임
 +- conda로 별도 가상환경을 만들고, "pip install protobuf"로 설치하거나 "conda install protobuf"로 설치하면 해당환경에서 cpp확장파일을 구할 수 있다. 
 +  - 경험적으로는, linux에서는 conda에서 cpp확장이 설치되었고, windows에서는 pip로 설치했을때 cpp 확장이 설치되었다.
 +  - 전반적으로 최신버전일 수록 pip만으로 쉽게 설치되는 것을 확인했다.
 +- 확장 파일(so 또는 pyd 확장자)을 구했다면 실행하려는 환경의 "lib/site-packages/google/protobuf/pyext/"에복사하면 cpp 확장 사용가능하다.
 +
  
 C++ 백엔드를 사용하도록 강제 설정 C++ 백엔드를 사용하도록 강제 설정
줄 15: 줄 27:
 $env:PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION="cpp" $env:PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION="cpp"
 </code> </code>
 +
 +
 +
  
      
 {{tag>python protobuf 직렬화 }} {{tag>python protobuf 직렬화 }}
python/protobuf.1742442537.txt.gz · 마지막으로 수정됨: 2025/03/20 03:48 저자 rex8312