2016-01-11 47 views
2

正如問題所述,我從源代碼編譯grpc,但也做了sudo pip install grpcio,但which grpc_python_plugin沒有返回任何東西。這是一個問題,因爲route_guide的grpc python示例要求我運行protoc -I . --python_out=. --grpc_out=. --plugin=protoc-gen-grpc='which grpc_python_plugin' ./route_guide.proto 以生成python存根。因爲,which grpc_python_plugin不返回任何東西,我得到以下錯誤:Python grpc protobuf存根生成問題:--grpc_out:protoc-gen-grpc:插件失敗,狀態碼爲1

: program not found or is not executable 
--grpc_out: protoc-gen-grpc: Plugin failed with status code 1. 

如果我縮短我試圖運行命令:protoc -I . --python_out=. ./route_guide.proto,它生成的文件route_guide_pb2.py但沒有服務機構和存根類,服務器和存根方法。 Ofc,如果你想爲任何目的使用grpc,這些方法是必要的。任何幫助,將不勝感激。

回答

1

聽起來好像你沒有/usr/local/bin在你的PATH; make install默認使用/usr/local的前綴。或者,編譯後grpc_python_plugin應該在bins/opt/

1

要解決此錯誤,請確保您的系統上已安裝grpc_python_plugin。 在pip install grpcio不採取以下步驟

  • 一)cd grpc(GRPC庫)
  • B)git submodule update --init
  • C)make grpc_python_plugin
  • 安裝特定平臺的插件,所以你必須單獨安裝它們蟒蛇平臺

這將爲您構建grpc python插件。現在,找出grpc_python_plugin您的系統上的位置,讓我們把它叫做binary_path

如果binary_path正在$PATH環境變量(echo $PATH),你是好去。然而,如果不是在$ PATH變量,你有兩個選擇

更新run_codegen.sh--plugin=protoc-gen-grpc=binary_path 或者,將二進制文件複製到受$PATH環境變量

+0

嗨跟蹤的位置之一,我怎麼可以這樣做對於Java?存根不是爲Java生成的。 – Ammad

相關問題