Skip to main content

A Python client to remotely access the R statistic package via network

Project description

What pyRserve does

pyRserve is a library for connecting Python to R (an excellent statistic package). Running Rserve in R attaches the R-interpreter to a network socket, waiting for pyRserve to connect to it. Through such a connection, variables can be get and set in R from Python, and also R-functions can be called remotely.

In contrast to rpy or rpy2 the R process does not have to run on the same machine, it can run on a remote machine and all variable access and function calls will be delegated there through the network.

Furthermore - and this makes everything feel very pythonic - all data structures will automatically be converted from native R to native Python and numpy types and back.

Supported platforms

This package has been mainly developed under Linux, and hence should run on all standard unix platforms, as well as on MacOS. pyRserve has also been successfully used on Windows machines. Unittests have been used on the Linux and MacOS side, however they might just work fine for Windows.

It has been tested to work with Python 2.7.x, 3.6 to 3.9.

The latest development has been tested with some previous and current versions of R and Rserve.

License

pyRserve has been written by Ralph Heinkel (ralph-heinkel.com) and is released under MIT license.

Quick installation

From your unix/macOS,windows command line run:

pip install pyRserve

For a fully functional setup also R and Rserve have to be installed. See section installation in the pyRserve documentation for instructions.

Quick usage

Open a first shell and start up the R server, by calling the module Rserve that provides the actual network connectivity for R:

$ R CMD Rserve

R (Rserve) will now listen on port 6311 (on localhost). Of course Rserve can be configured to listen on an exposed port and hence will be accessible from remote hosts as well.

Open a second shell, start Python, import pyRserve, and initialize the connection to Rserve:

$ python
>>> import pyRserve
>>> conn = pyRserve.connect()

The default connection will be done on localhost:6311. Other hosts can be reached by calling pyRserve.connect(host=..., port=...) as well.

The conn object provides a namespace called conn.r that directly maps all variables and other global symbols (like functions etc) and hence makes them accessible from Python.

Now create a vector in R, access the vector from Python (will be converted into a numpy array), and call the sum()-function in R:

>>> conn.r("vec <- c(1, 2, 4)")
>>> conn.r.vec                 # access vector 'vec' as an attribute of 'conn.r'
array([1., 2., 4.])
>>> conn.r.sum(conn.r.vec)     # 'sum' in running in the R-interpreter, returning the result to Python
7.0

The other way around also works:

>>> conn.r.somenumber = 444         # set a variable called 'somenumber' in the R interpreter...
>>> conn.r("somenumber * 2")        # ... and double the number
888.0

Source code repository

pyRserve is now hosted on GitHub at https://github.com/ralhei/pyRserve.

Documentation

Documentation can be found at https://pyrserve.readthedocs.io.

Support

For discussion of pyRserve and getting help please use the Google newsgroup available at http://groups.google.com/group/pyrserve.

Issues with the code (like bugs, etc.) should be reported on GitHub at https://github.com/ralhei/pyRserve/issues.

Missing features

  • Authentication is implemented in Rserve but not yet in pyRserve

  • TLS encryption is not implemented yet in pyRserve. However using ssh tunnels can solve security issues in the meantime (see documentation).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyrserve-1.0.4.tar.gz (32.1 kB view details)

Uploaded Source

Built Distribution

pyRserve-1.0.4-py2.py3-none-any.whl (33.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pyrserve-1.0.4.tar.gz.

File metadata

  • Download URL: pyrserve-1.0.4.tar.gz
  • Upload date:
  • Size: 32.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pyrserve-1.0.4.tar.gz
Algorithm Hash digest
SHA256 29c57f375afc38642cdea7df477b9f565f07805656aa1066bba8cfcb04dfa61a
MD5 94dd229d8f539adc7be9af8432ff575d
BLAKE2b-256 90aa33b6336ea1d822ae3731ab6ed2f851735c23deb4df71b6b7189424e983c7

See more details on using hashes here.

File details

Details for the file pyRserve-1.0.4-py2.py3-none-any.whl.

File metadata

  • Download URL: pyRserve-1.0.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 33.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pyRserve-1.0.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 914f082d8f2d44b2f582eeaabf965dc85bb091e16f800c04422cf5a5b47e3c7c
MD5 6bb45a0527ff990729f254a332371709
BLAKE2b-256 e045a1b2c4041c13a62355df0a92d84abc1728f506ab232df7623c73f3250a71

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page