# 2. Installation

Date: | 5 April 2012
Authors: | Chris Fonnesbeck, Anand Patil, David Huard, John Salvatier
Contact: | chris.fonnesbeck@vanderbilt.edu
Web site: | http://github.com/pymc-devs/pymc
Copyright: | This document has been placed in the public domain.
License: | PyMC is released under the Academic Free license.
Version: | 2.2

PyMC is known to run on Mac OS X, Linux and Windows, but in theory should be able to work on just about any platform for which Python, a Fortran compiler and the NumPy module are available. However, installing some extra depencies can greatly improve PyMC’s performance and versatility. The following describes the required and optional dependencies and takes you through the installation process.

## 2.1. Dependencies

PyMC requires some prerequisite packages to be present on the system. Fortunately, there are currently only a few hard dependencies, and all are freely available online.

- Python version 2.6 or later.
- NumPy (1.6 or newer): The fundamental scientific programming package, it provides a multidimensional array type and many useful functions for numerical analysis.
- Matplotlib (1.0 or newer): 2D plotting library which produces publication quality figures in a variety of image formats and interactive environments
- SciPy (optional): Library of algorithms for mathematics, science and engineering.
- pyTables (optional): Package for managing hierarchical datasets and designed to efficiently and easily cope with extremely large amounts of data. Requires the HDF5 library.
- pydot (optional): Python interface to Graphviz’s Dot language, it allows PyMC to create both directed and non-directed graphical representations of models. Requires the Graphviz library.
- IPython (optional): An enhanced interactive Python shell and an architecture for interactive parallel computing.
- nose (optional): A test discovery-based unittest extension (required to run the test suite).

There are prebuilt distributions that include all required dependencies. For Mac OS X and Windows users, we recommend the Enthought Python Distribution. The Enthought Python Distribution comes bundled with these prerequisites. Note that depending on the currency of these distributions, some packages may need to be updated manually.

If, instead of installing the prebuilt binaries, you prefer (or have) to build `pymc` yourself, make sure you have a Fortran and a C compiler. There are free compilers (gfortran, gcc) available on all platforms. Other compilers have not been tested with PyMC but may work nonetheless.

## 2.2. Installation using EasyInstall

The easiest way to install PyMC is to type in a terminal:

    easy_install pymc

Provided EasyInstall (part of the setuptools module) is installed and in your path, this should fetch and install the package from the Python Package Index. Make sure you have the appropriate administrative privileges to install software on your computer.

## 2.3. Installing from pre-built binaries

Pre-built binaries are available for Windows XP and Mac OS X. These can be installed as follows:

> 1. Download the installer for your platform from PyPI or the GitHub download page.

> 2. Double-click the executable installation package, then follow the on-screen instructions.

For other platforms, you will need to build the package yourself from source. Fortunately, this should be relatively straightforward.

## 2.4. Compiling the source code

First download the source code from GitHub and unpack it. Then move into the unpacked directory and follow the platform specific instructions.

### 2.4.1. Windows

One way to compile PyMC on Windows is to install MinGW and MSYS. MinGW is the GNU Compiler Collection (GCC) augmented with Windows specific headers and libraries. MSYS is a POSIX-like console (bash) with UNIX command line tools. Download the Automated MinGW Installer and double-click on it to launch the installation process. You will be asked to select which components are to be installed: make sure the g77 compiler is selected and proceed with the instructions. Then download and install MSYS-1.0.exe, launch it and again follow the on-screen instructions.

Once this is done, launch the MSYS console, change into the PyMC directory and type:

    python setup.py install

This will build the C and Fortran extension and copy the libraries and python modules in the site-packages directory of your Python distribution.

### 2.4.2. Mac OS X or Linux

In a terminal, type:

    python setup.py config_fc --fcompiler gfortran build
    python setup.py install

The above syntax also assumes that you have gFortran installed and available. The sudo command may be required to install PyMC into the Python `site-packages` directory if it has restricted privileges.

In addition, the python-dev package may be required to install PyMC on Linux systems.

## 2.5. Development version

You can check out the development version of the code from the GitHub repository:

    git clone git://github.com/pymc-devs/pymc.git

Previous versions are available in the `/tags` directory.

## 2.6. Running the test suite

`pymc` comes with a set of tests that verify that the critical components of the code work as expected. To run these tests, users must have nose installed. The tests are launched from a python shell:

    import pymc
    pymc.test()

In case of failures, messages detailing the nature of these failures will appear. In case this happens (it shouldn’t), please report the problems on the issue tracker (the issues tab on the Google Code page), specifying the version you are using and the environment.

## 2.7. Bugs and feature requests

Report problems with the installation, bugs in the code or feature request at the issue tracker. Comments and questions are welcome and should be addressed to PyMC’s mailing list.