摘要:下安裝及在與上的應用下載解壓源文件上的版本發布地址下載解壓進入源碼目錄當前下載的最后一個版本請根據自己的需求下載對應的版本,當前操作演示版本為及文件中開頭的安裝依賴其他非發行版的機器安裝對應的依賴擴展即可生成文件如果無法連接網站修改
linux下安裝protobuf及在python與php上的應用 下載解壓源文件 github上的版本發布地址
https://github.com/protocolbuffers/protobuf/releases下載&解壓&進入源碼目錄
當前下載protobuf2的最后一個版本
wget https://github.com/google/protobuf/archive/v2.6.1.zip unzip v2.6.1.zip -d ./ cd protobuf-2.6.1
請根據自己的需求下載對應的版本,當前操作演示版本為protobuf2,及.proto文件中syntax = "proto2";開頭的安裝依賴
sudo apt-get install autoconf automake libtool
其他非debian發行版的機器安裝對應的依賴擴展即可生成configure文件
./autogen.sh
如果無法連接google網站
修改
curl http://googletest.googlecode.com/files/gtest-1.5.0.tar.bz2 | tar jx mv gtest-1.5.0 gtest
為
wget https://github.com/google/googletest/archive/release-1.5.0.tar.gz tar xzvf release-1.5.0.tar.gz mv googletest-release-1.5.0 gtest
也可由手動刪除google的連接,直接下載文件并解壓進行configure 查看幫助
./configure -h指定安裝目錄
./configure prefix=/opt/protobuf2安裝
make && make install
權限不夠的話,要使用sudo建立命令軟連接
ln -s /opt/protobuf2/bin/protoc /usr/local/bin/protoc
建立軟連接,就可以直接使用protoc命令了在Python中的應用 使用protobuf命令生成.py文件
protoc --proto_path=/home/zhangsan/protobuf --python_out=/home/zhangsan/python /home/zhangsan/protobuf/test.proto參數說明
參數proto_path指明.proto文件所在位置,如果不寫,會提示以下內容:
/home/zhangsan/protobuf/test.proto: File does not reside within any path specified using --proto_path (or -I). You must specify a --proto_path which encompasses this file. Note that the proto_path must be an exact prefix of the .proto file names -- protoc is too dumb to figure out when two paths (e.g. absolute and relative) are equivalent (it"s harder than you think).
所以務必寫上.proto文件所在目錄路徑
python_out即.py生成的目錄
最后一個參數即為.proto文件的絕對路徑
生成文件的優化修改這行代碼如果使用IDE,提示無相關的類庫的話,直接刪掉/注釋即可
from google.protobuf import symbol_database as _symbol_database
生成的.py文件中,一下內容可能報類缺少之類的問題,也可刪掉、注釋
_sym_db.RegisterMessage
文件中包含的空的數組 oneofs也可能給導致異常,刪掉、注釋即可
oneofs=[],
最后調整一下文件的代碼風格即可使用
應用(假設是根據用戶信息獲取用戶的博客文章)request = DemoRequest() request.user.id = 1 request.user.name = "zhangsan" body = request.SerializeToString() # body 既可以使用http發送 response = http_func_name(body) message = response.getBody() message.ParseFromString() # message 即為對應的數據對象 print(message.blog.id) print(message.blog.title)在PHP中的應用 下載allegro/php-protobuf
github版本發布頁面
https://github.com/allegro/php-protobuf/releases
下載最新發布的版本(2018.11.26版本為v0.12.3)
wget https://github.com/allegro/php-protobuf/archive/v0.12.3.zip
解壓到當前目錄
unzip v0.12.3.zip -d ./安裝php擴展
cd php-protobuf-0.12.3 phpize ./configure make make install配置php.ini
extension=protobuf.so
在擴展配置部分加入以上內容,執行php -ir | grep protobuf輸出protobuf擴展信息即為正常,如:
protobuf PWD => /home/qingliu/soft/php-protobuf-0.12.3 $_SERVER["PWD"] => /home/qingliu/soft/php-protobuf-0.12.3在源碼目錄安裝allegro/php-protobuf依賴的php類庫
composer install 安裝即可
使用protobuf生成.php文件protoc --proto_path=/home/zhangsan/protobuf --plugin=protoc-gen-allegrophp=protoc-gen-php.php --allegrophp_out=/home/zhangsan/php /home/zhangsan/protobuf/test.proto
請在allegro/php-protobuf的源碼目錄執行,正常執行完上述命令后,可以在 /home/zhangsan/php目錄中看到生成的php文件,php無需修改,即可使用,如不符合自己的項目規范,可以自行調節IDE Helper
使用這個composer包就行啦
composer require ruoge3s/protobuf-message-helper
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42674.html
摘要:下安裝及在與上的應用下載解壓源文件上的版本發布地址下載解壓進入源碼目錄當前下載的最后一個版本請根據自己的需求下載對應的版本,當前操作演示版本為及文件中開頭的安裝依賴其他非發行版的機器安裝對應的依賴擴展即可生成文件如果無法連接網站修改 linux下安裝protobuf及在python與php上的應用 下載解壓源文件 github上的版本發布地址 https://github.com/pr...
摘要:是一種常用的深度學習框架,主要應用在視頻圖像處理方面的應用上。由于沒錢買,只能在虛擬機環境下配置版開發環境,大家勿笑。 caffe是一種常用的深度學習框架,主要應用在視頻、圖像處理方面的應用上。由于沒錢買gpu,只能在虛擬機環境下配置Ubuntu CPU版caffe開發環境,大家勿笑。 1.首先,先安裝依賴庫: sudo apt-get install libprotobuf-dev...
閱讀 1993·2021-08-11 11:13
閱讀 1015·2021-07-25 21:37
閱讀 2577·2019-08-29 18:42
閱讀 2510·2019-08-26 12:18
閱讀 915·2019-08-26 11:29
閱讀 1684·2019-08-23 17:17
閱讀 2664·2019-08-23 15:55
閱讀 2599·2019-08-23 14:34