Python -> R bridge

rpy2 is an interface to R running embedded in a Python process.

Installation

pip should work out of the box:

pip install rpy2

The package has optional depencies providing
specific functionalities not otherwise required to use the rest of rpy2.

For example, to be able to run the unit tests:

pip install rpy2[test]

To install all dependencies, use:

pip install rpy2[all]

The package is known to compile on Linux, MacOSX
(provided that developper tools are installed, and you are ready
figure out how by yourself). The situation is currently a little
more complicated on Windows. Check the issue tracker.

In case you find yourself with this source without any idea
of what it takes to compile anything on your platform, try first

python setup.py install

Non system-R installations

Whenever R is in not installed in a system location, the system might not
know where to find the R shared library.

If R is in the PATH, that is entering R on the command line successfully starts
an R terminal, but rpy2 does not work because of missing C libraries, try the following
before starting Python:

export LD_LIBRARY_PATH="$(python -m rpy2.situation LD_LIBRARY_PATH)":${LD_LIBRARY_PATH}

Docker

To try rpy2 in an ipython console:

docker run -it --rm -p 8888:8888 rpy2/jupyter-ubuntu ipython

To run a jupypter notebook on port 8888:

docker run --rm -p 8888:8888 rpy2/jupyter-ubuntu

More information about Docker images can be found in the
docker image repository.

Images with jupyter are can be used with
mybinder.

Documentation

Documentation is available either in the source tree (doc/),
or online.

Testing

rpy2 uses pytest, with the plugin pytest-cov for code coverage. To
test the package from the source tree, either to check and installation
on your system or before submitting a pull request, do:

pytest tests/

For code coverage, do:

pytest --cov=rpy2.rinterface_lib \
       --cov=rpy2.rinterface \
       --cov=rpy2.ipython \
       --cov=rpy2.robject \
       tests

For more options, such as how to run specify tests, please refer to the pytest
documentation.

GitHub