grpc/src/python/grpcio
Craig Tiller 3e94de19cd Merge branch 'optionalize_resolvers' into optionalize_client_config 2016-04-01 12:57:28 -07:00
..
grpc Merge pull request #5700 from bluecmd/ssl-defaults 2016-03-31 17:56:29 -07:00
tests Merge pull request #5700 from bluecmd/ssl-defaults 2016-03-31 17:56:29 -07:00
.gitignore grpc_set_ssl_roots_override_callback for Python 2016-02-09 19:02:56 +00:00
README.rst review comments 2016-03-18 09:10:35 -07:00
commands.py Update copyrights 2016-03-31 07:46:18 -07:00
grpc_core_dependencies.py Reposition files to optionalize client_config system 2016-03-31 13:45:47 -07:00
grpc_version.py Update copyrights 2016-03-31 07:46:18 -07:00
precompiled.py Merge github.com:grpc/grpc into copyright-fix 2016-03-31 07:49:58 -07:00
support.py post merge 2016-02-02 09:43:02 -08:00

README.rst

gRPC Python
===========

Package for gRPC Python.

Installation
------------

gRPC Python is available for Linux, Mac OS X, and Windows running Python 2.7.

From PyPI
~~~~~~~~~

If you are installing locally...

::

  $ pip install grpcio

Else system wide (on Ubuntu)...

::

  $ sudo pip install grpcio

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 REPO_ROOT=grpc  # REPO_ROOT can be any directory of your choice
  $ git clone https://github.com/grpc/grpc.git $REPO_ROOT
  $ cd $REPO_ROOT

  # For the next two commands do `sudo pip install` if you get permission-denied errors
  $ pip install -rrequirements.txt
  $ GRPC_PYTHON_BUILD_WITH_CYTHON=1 pip install .


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 "<string>", line 17, in <module>
     ...
    File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 509, in find
      raise VersionConflict(dist, req)
    pkg_resources.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