사용자 도구

사이트 도구


python:protobuf

차이

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

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
python:protobuf [2025/03/25 09:14] rex8312python:protobuf [2025/04/15 02:43] (현재) rex8312
줄 12: 줄 12:
 </code> </code>
  
-"import google.protobuf.pyext._message as message"를 실행했을때 import error가 발생하면 cpp backend가 없는 것임 +  * "import google.protobuf.pyext._message as message"를 실행했을때 import error가 발생하면 cpp backend가 없는 것임 
-conda로 별도 가상환경을 만들고, "pip install protobuf"로 설치하거나 "conda install protobuf"로 설치하면 해당환경에서 cpp확장파일을 구할 수 있다.  +    conda로 별도 가상환경을 만들고, "pip install protobuf"로 설치하거나 "conda install protobuf"로 설치하면 해당환경에서 cpp확장파일을 구할 수 있다.  
-  경험적으로는, linux에서는 conda에서 cpp확장이 설치되었고, windows에서는 pip로 설치했을때 cpp 확장이 설치되었다. +    경험적으로는, linux에서는 conda에서 cpp확장이 설치되었고, windows에서는 pip로 설치했을때 cpp 확장이 설치되었다. 
-  전반적으로 최신버전일 수록 pip만으로 쉽게 설치되는 것을 확인했다. +    전반적으로 최신버전일 수록 pip만으로 쉽게 설치되는 것을 확인했다. 
-확장 파일(so 또는 pyd 확장자)을 구했다면 실행하려는 환경의 "lib/site-packages/google/protobuf/pyext/"에복사하면 cpp 확장 사용가능하다.+  확장 파일(so 또는 pyd 확장자)을 구했다면 실행하려는 환경의 "lib/site-packages/google/protobuf/pyext/"에복사하면 cpp 확장 사용가능하다. 
 + 
 +  * pip로 설치할때, cpp 백엔드가 설치되는지 확실하게 확인하는 방법 
 +    * https://pypi.org/project/protobuf/ 에서 "릴리즈 이력" --> 특정 버전 선택 --> "파일 다운로드" 
 +    * 빌드된 배포판에서 내가 선택한 환경에 맞는 whl 파일 선택, 다운로드 
 +    * 다운로드 받은 파일을 zip으로 확장자를 변경한 뒤 pyext에 바이너리가 있는지 확인
  
  
줄 28: 줄 33:
 </code> </code>
  
 +====== Windows용 python module 빌드 ======
  
 +<code>
 +git clone https://github.com/protocolbuffers/protobuf.git
 +cd protobuf
 +git checkout v3.20.3
 +git submodule update --init --recursive
 +
 +# /MT 옵션 사용
 +
 +uv run --with=cmake==4.0.0 cmake -G "Visual Studio 15 2017" -A x64 -DCMAKE_BUILD_TYPE=Release -S cmake -DCMAKE_MSVC_RUNTIME_LIBRARY="MultiThreaded" -B build2 -Dprotobuf_BUILD_SHARED_LIBS=OFF -Dprotobuf_BUILD_TESTS=OFF
 +uv run --with=cmake==4.0.0 cmake --build build2 --config Release
 +
 +# %CD% 현재 폴더
 +
 +set CL=/WX- /D_USE_MATH_DEFINES /wd4244 /wd4018
 +set INCLUDE=%CD%\src;%INCLUDE%
 +set LIB=%CD%\build2\Release;%LIB%
 +set PATH=%CD%\build2\Release;%PATH%
 +
 +cd python
 +uv run --python=3.10 python setup.py build --cpp_implementation
 +uv run --python=3.10 --with=wheel python setup.py bdist_wheel --cpp_implementation
 +</code>
  
  
      
 {{tag>python protobuf 직렬화 }} {{tag>python protobuf 직렬화 }}
python/protobuf.1742894083.txt.gz · 마지막으로 수정됨: 저자 rex8312