This page covers the necessary steps to install and run NIPY. Below is a list of required dependencies, along with additional software recommendations.
NIPY is currently ALPHA quality, but is rapidly improving. If you are trying to get some work done wait until we have a stable release. For now, the code will primarily be of interest to developers.
Python_ 2.5 or later
NumPy_ 1.2 or later
If your OS/distribution does not provide you with binary build of NIPY, you would need few additional components to be able to build NIPY directly from sources
- gcc_
- NIPY does contain a few C extensions for optimized routines. Therefore, you must have a compiler to build from source. XCode_ (OSX) and MinGW_ (Windows) both include gcc.
- cython_ 0.11.1 or later
- Cython is a language that is a fusion of Python and C. It allows us to write fast code using Python and C syntax, so that it easier to read and maintain.
- iPython_
- Interactive Python environment.
- Matplotlib_
- 2D python plotting library.
Currently we have binary packages for snapshot releases only for Debian-based systems. Stock Debian_ and Ubuntu_ installations come with some snapshot of NiPy available. For more up-to-date packages of NiPy you can use NeuroDebian_ repository. For the other OSes and Linux distributions, the easiest installation method is to download the source tarball and follow the :ref:`building_source` instructions below.
Developers should look through the :ref:`development quickstart <development-quickstart>` documentation. There you will find information on building NIPY, the required software packages and our developer guidelines.
If you are primarily interested in using NIPY, download the source tarball (e.g. from `nipy github`_) and follow these instructions for building. The installation process is similar to other Python packages so it will be familiar if you have Python experience.
Unpack the source tarball and change into the source directory. Once in the source directory, you can build the neuroimaging package using:
python setup.py build
To install, simply do:
sudo python setup.py install
Note
As with any Python_ installation, this will install the modules
in your system Python_ site-packages directory (which is why you
need sudo). Many of us prefer to install development packages in a
local directory so as to leave the system python alone. This is
merely a preference, nothing will go wrong if you install using the
sudo method. To install in a local directory, use the --prefix
option. For example, if you created a local
directory in your
home directory, you would install nipy like this:
python setup.py install --prefix=$HOME/local
See :ref:`installing-data` for some instructions on installing data packages.
See :ref:`data-files` for details on how to customize the installation paths.
How you install NIPY for Snow Leopard depends on which version of Python you have installed. There are two versions we know work, using the Python that shipped with Snow Leopard, and using a 64-bit MacPorts version.
If you are using the Python that shipped with Snow Leopard, there are detailed instructions on this blog for installing numpy_ and scipy_. The critical step is to set the appropriate flags for the C and Fortran compilers so they match the architecture of your version of Python. You can discover the architecture of your Python by doing the following:
file `which python`
For example, on my 32-bit Leopard (10.5) it's a Universal binary, built for both ppc and i386 architectures:
/usr/local/bin/python: Mach-O universal binary with 2 architectures /usr/local/bin/python (for architecture i386): Mach-O executable i386 /usr/local/bin/python (for architecture ppc): Mach-O executable ppc
On a 64-bit MacPorts install on Snow Leopard (10.6), it's built for 64-bit only:
/opt/local/bin/python: Mach-P 64-bit executable x86_64
For the 64-bit MacPorts install, set the flags and build using this:
export MACOSX_DEPLOYMENT_TARGET=10.6 export LDFLAGS="-arch x86_64 -Wall -undefined dynamic_lookup -bundle -fPIC" export FFLAGS="-arch x86_64 -O2 -Wall -fPIC" python setup.py build
These sites may also be useful: