HTTP/2-based RPC framework
Package for gRPC Python.
gRPC Python is available for Linux, macOS, and Windows.
From PyPI ~~~~~~~~~
If you are installing locally...
::
$ pip install grpcio
Else system wide (on Ubuntu)...
::
$ sudo pip install grpcio
If you're on Windows make sure that you installed the :code:pip.exe
component
when you installed Python (if not go back and install it!) then invoke:
::
$ pip.exe install grpcio
Windows users may need to invoke :code:pip.exe
from a command line ran as
administrator.
n.b. On Windows and on Mac OS X one must have a recent release of :code:pip
to retrieve the proper wheel from PyPI. Be sure to upgrade to the latest
version!
From Source ~~~~~~~~~~~
Building from source requires that you have the Python headers (usually a
package named :code:python-dev
).
::
$ export REPOROOT=grpc # REPOROOT can be any directory of your choice $ git clone -b $(curl -L https://grpc.io/release) https://github.com/grpc/grpc $REPOROOT $ cd $REPOROOT $ git submodule update --init
# For the next two commands do sudo pip install
if you get permission-denied errors
$ pip install -rrequirements.txt
$ GRPCPYTHONBUILDWITHCYTHON=1 pip install .
You cannot currently install Python from source on Windows. Things might work out for you in MSYS2 (follow the Linux instructions), but it isn't officially supported at the moment.
Troubleshooting ~~~~~~~~~~~~~~~
Help, I ...
... see a :code:pkg_resources.VersionConflict
when I try to install
grpc
This is likely because :code:pip
doesn't own the offending dependency,
which in turn is likely because your operating system's package manager owns
it. You'll need to force the installation of the dependency:
:code:pip install --ignore-installed $OFFENDING_DEPENDENCY
For example, if you get an error like the following:
::
Traceback (most recent call last): File "", line 17, in ... File "/usr/lib/python2.7/dist-packages/pkgresources.py", line 509, in find raise VersionConflict(dist, req) pkgresources.VersionConflict: (six 1.8.0 (/usr/lib/python2.7/dist-packages), Requirement.parse('six>=1.10'))
You can fix it by doing:
::
sudo pip install --ignore-installed six
... see the following error on some platforms
::
/tmp/pip-build-U8pSsr/cython/Cython/Plex/Scanners.c:4:20: fatal error: Python.h: No such file or directory #include "Python.h" ^ compilation terminated.
You can fix it by installing python-dev
package. i.e
::
sudo apt-get install python-dev