A working Python 3.x installation is required to be able to use the SPI Rack interface. If you are using a GNU/Linux OS, this should already be installed on your computer. If you are using Mac OS X or Microsoft Windows you will need to install a Python distribution yourself. We highly recommend installing Anaconda, as this takes care of installing Python and the most commonly used packages, and the managing packages. Download and install from here and make sure to get the latest 3.x version.

Once you download, install Anaconda according to the instructions on screen, choosing the single user installation option. The instructions below assume that Anaconda 3.x is installed with all included packages.

Python 2.7 users might be able to use the SPI Rack code using __future__, but this is untested and unsupported.

Windows device drivers

If you are running on Microsoft Windows, you will also need to install the SPI Rack controller device drivers. The rack communicates through a virtual Serial port over USB, and this requires drivers on Windows. Linux and Mac OS X users do not have to install these. Installing these drivers requires administrative rights.


Before you install the SPI Rack, you have to decide whether you want to use the latest stable release or the developer version from GitHub. Both the options will install the spirack package into the currently active Anaconda environment. It will also install any necessary dependencies not installed by Anaconda.

Installing the latest release

To install the latest stable release, simple type in a console:

pip install spirack

Installing from GitHub

Clone or download the repository from GitHub and install the spirack package:

pip install -e <path-to-repository>


If you used pip to install the latest stable release from PyPi, run the following to update:

pip install --upgrade spirack

If you installed from GitHub, simply pull the repository using your preferred method and update from there.

Getting started

To get started, take a look at the introduction and/or look at the examples on this website or on GitHub: