【PythonでgRPC通信】grpcioのインストール

【PythonでgRPC通信】grpcioのインストール プログラミング

「サービス間通信を高速に処理したい」
「PythonでgRPCを利用したい」

このような場合には、grpcioがオススメです。
この記事では、grpcioについて解説しています。

本記事の内容

  • grpcioとは?
  • grpcioのシステム要件
  • grpcioのインストール
  • grpcioの動作確認

それでは、上記に沿って解説していきます。

grpcioとは?

grpcioとは、gRPC用のPythonパッケージのことを言います。
そして、gRPCとはGoogleがRPCを実現するために開発した仕組みです。

RPCとは、Remote Procedure Callの略です。
日本語で言うと、RPCは遠隔手続き呼び出しとなります。

gRPCは技術的には、以下をベースとします。

  • HTTP/2
  • Protocol Buffers

これらを見てもわかるように、gRPCは高速にデータを転送する仕組みだと言えます。
Protocol Buffersについては、次の記事で説明しています。

ちなみに、Protocol BuffersもGoogleが開発しています。

また、grpcio-toolsというパッケージが存在しています。
grpcioを利用する上では、grpcio-toolsもインストールしておきましょう。

以上、grpcioについて説明しました。
次は、grpcioのシステム要件を説明します。

grpcioのシステム要件

現時点(2022年5月)でのgrpcioの最新バージョンは、1.46.1となります。
この最新バージョンは、2022年5月12日にリリースされています。

また、grpcio-toolsの最新バージョンも1.46.1となります。
grpcioとgrpcio-toolsは、セットと捉えることができます。

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

サポート対象となるPythonのバージョンは、以下となっています。

  • Python 3.6
  • Python 3.7
  • Python 3.8
  • Python 3.9
  • Python 3.10

ちょっとサポートし過ぎですね。
基本的には、以下のPython公式開発サイクルに従えば問題ありません。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年10月4日2026年10月

すでに3.6はサポート対象外です。
そのため、3.7以降へのサポートだけで十分と言えます。

よって、Python 3.7以降を利用しましょう。
これがgrpcioのシステム要件では、最も重要なポイントになります。

もし3.6以下であれば、アップグレードしましょう。
現時点で最新の3.10.4へのアップグレードは、次の記事でまとめています。

以上、grpcioのシステム要件を説明しました。
次は、grpcioのインストールを説明します。

grpcioのインストール

検証は、次のバージョンのPythonで行います。

$ python -V
Python 3.10.4

まずは、現状のインストール済みパッケージを確認しておきます。

$ pip list
Package      Version
------------ -------
pip          22.1
setuptools   62.2.0
wheel        0.36.2

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、grpcioのインストールです。
同時に、grpcio-toolsもインストールしましょう。

これらのインストールは、以下のコマンドとなります。

pip install grpcio grpcio-tools

インストールには、少しだけ待たされます。
終了したら、どんなパッケージがインストールされたのかを確認します。

$ pip list
Package      Version
------------ -------
grpcio       1.46.1
grpcio-tools 1.46.1
pip          22.1
protobuf     3.20.1
setuptools   62.2.0
six          1.16.0
wheel        0.36.2

protobufに依存していることが確認できます。

以上、grpcioのインストールを説明しました。
次は、grpcioの動作確認を行います。

grpcioの動作確認

gRPCの動作を確認するには、クライアントとサーバーの両方が必要です。
それらのコードをゼロから用意するのは、それなりに手間がかかります。

その手間を省くために、用意されているサンプルを利用します。
gitコマンドが利用可能である前提で説明を進めます。

LinuxやmacOSなら、gitコマンドについての説明は不要でしょう。
Windowsの場合は、次の記事を参考にしてgitコマンドを使えるようにしてください。

まずは、サンプルの取得です。

$ git clone -b v1.45.0 --depth 1 --shallow-submodules https://github.com/grpc/grpc

ここでもう一つターミナルを開きます。
クライアントとサーバーの両方が必要ということです。

それぞれのターミナルで指定されたディレクトリに移動します。

$ cd grpc/examples/python/helloworld

移動できたら、それぞれのターミナルで以下の順番にプログラムを起動。

サーバー

$ python greeter_server.py

クライアント

$ python greeter_client.py
Greeter client received: Hello, you!

クライアントで上記のように表示されれば、OKです。
gRPC通信ができていると言えます。

以上、grpcioの動作確認を説明しました。

タイトルとURLをコピーしました