首頁 > 軟體

CentOS6.5下Python版本的ProtoBuf編譯及安裝

2020-06-16 17:18:19

因為要學習faster r-cnn,在搭建環境的時,發現原本通過yum安裝的protobuf沒有安裝Python版本以及其他一系列版本版本相容性問題,導致我必須用編譯方式重新安裝protobuf2.5

下載原始碼

首先,從github上下載protobuf的原始碼,地址:https://github.com/google/protobuf,我選擇下載2.5.0版本。

編譯protobuf

然後將下載的壓縮包解壓縮

unzip protobuf-2.5.0.zip

按照網上教學,應該執行./configure了,但是根目錄下居然沒有configure檔案,卻有一個autogen.sh,原來是因為protobuf的編譯方式做了修改,要執行autogen.sh才會生成configure指令碼。

但在執行autogen.sh時出錯了,因為google.com被牆了,我的虛擬機器裡無法下載gtest,於是手動下載googletest-release-1.5.0.zip,解壓縮後,改名為gtest放在protobuf-2.5.0目錄下

autogen.sh程式碼片段

# Check that gtest is present.  Usually it is already there since the
# directory is set up as an SVN external.
# 判斷是否存在gtest目錄
if test ! -e gtest; then
  echo "Google Test not present.  Fetching gtest-1.5.0 from the web..."
  #如果目錄不存在則嘗試從google.com下載並解壓縮,如果google被牆則下載失敗
  curl http://googletest.googlecode.com/files/gtest-1.5.0.tar.bz2 | tar jx
  #將解壓縮後的目錄改名為gtest
  mv gtest-1.5.0 gtest
fi

googletest1.5.0可以到Linux公社資源站下載:

------------------------------------------分割線------------------------------------------

免費下載地址在 http://linux.linuxidc.com/

使用者名稱與密碼都是www.linuxidc.com

具體下載目錄在 /2017年資料/3月/27日/CentOS6.5下Python版本的ProtoBuf編譯及安裝/

下載方法見 http://www.linuxidc.com/Linux/2013-07/87684.htm

------------------------------------------分割線------------------------------------------

#解壓縮
unzip gtest-1.5.0.zip  
mv gtest-1.5.0 gtest

執行protobuf編譯

#執行autogen.sh生成configure
./autogen.sh  
./configure
# -j8 多執行緒編譯
make -j8
make check
# 安裝編譯成功的protobuf
sudo make install

安裝python模組

cd python 
python setup.py build 
python setup.py test 
python setup.py install

驗證Python模組

驗證Python模組是否被正確安裝
如果沒有報錯,說明安裝正常。

$ python 
>>> import google.protobuf.internal
>>> 

參考:http://www.linuxidc.com/Linux/2017-03/142242.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-03/142243.htm


IT145.com E-mail:sddin#qq.com