Installing Iris

You can either install Iris using the conda package manager or from source.

Installing using conda

Iris is available using conda for the following platforms:
  • Linux 64-bit,
  • Mac OSX 64-bit, and
  • Windows 32-bit and 64-bit.

To install Iris using conda, you must first download and install conda, for example from

Once conda is installed, you can install Iris using conda on any platform with the following command:

conda install -c conda-forge iris

If you wish to run any of the code examples (see you will also need the Iris sample data. This can also be installed using conda:

conda install -c conda-forge iris-sample-data

Further documentation on using conda and the features it provides can be found at

Installing from source

The latest Iris source release is available from

Iris makes use of a range of other libraries and python modules. These dependencies must be in place before you can successfully install Iris. Once you have satisfied the requirements detailed below, extract the iris source package, cd to the new directory, and enter:

python install

In-place build - an alternative for developers

We strongly encourage people to contribute to Iris and for this type of development activity an in-place build can be useful. Once you’ve cloned the Iris git repository you can perform an in-place build by entering:

python std_names
python build_ext --inplace

Details of other options and commands can be found by entering:

python --help


python --help-commands

Build and runtime requirements

These are external packages which you will need to have installed before installing and running Iris.

Many of these packages are available in Linux package managers such as aptitude and yum. For example, it may be possible to install Numpy using:

apt-get install python-numpy

If you are installing dependencies with a package manager on Linux, you may need to install the development packages (look for a “-dev” postfix) in addition to the core packages.

python 2.7 or 3.4 (
Iris requires Python 2.7 or Python 3.4.
numpy 1.9 or later (
Python package for scientific computing including a powerful N-dimensional array object.
biggus 0.14 or later (
Virtual large arrays and lazy evaluation.
scipy 0.10 or later (
Python package for scientific computing.
cartopy 0.11.0 or later (
Python package which provides cartographic tools for python.
PyKE 1.1.1 or later (
Python knowledge-based inference engine.
netcdf4-python 0.9.9 or later (
Python interface to the netCDF version 4 C library. (It is strongly recommended to ensure your installation uses a thread-safe build of HDF5 to avoid segmentation faults when using lazy evaluation.)
cf_units 1.0 or later (
CF data units handling, using udunits (q.v.).
udunits2 2.1.24 or later
( C library for units of physical quantities.
setuptools 0.6c11 or later (
Python package for installing/removing python packages.


These are optional packages which you may want to install to enable additonal Iris functionality such as plotting and loading/saving GRIB. These packages are required for the full Iris test suite to run.

gdal 1.9.1 or later (
Python package for the Geospatial Data Abstraction Library (GDAL).
graphviz 2.18 or later (
Graph visualisation software.
grib-api 1.9.16 or later
( API for the encoding and decoding WMO FM-92 GRIB edition 1 and edition 2 messages. A compression library such as Jasper is required to read JPEG2000 compressed GRIB2 files.
iris-grib 0.9 or later
( Iris interface to ECMWF’s GRIB API
matplotlib 1.2.0 (
Python package for 2D plotting.
mock 1.0.1 (
Python mocking and patching package for testing. Note that this package is only required to support the Iris unit tests.
nose 1.1.2 or later (
Python package for software testing. Iris is not compatible with nose2.
pep8 1.4.6 (
Python package for software testing.
pandas 0.11.0 or later (
Python package providing high-performance, easy-to-use data structures and data analysis tools.
PythonImagingLibrary 1.1.7 or later (
Python package for image processing.
pyugrid 0.1.1 or later (
A Python API to utilize data written using the unstructured grid UGRID conventions.
shapely 1.2.14 (
Python package for the manipulation and analysis of planar geometric objects.
mo_pack 0.1.0dev0 (
A Python wrapper to libmo_unpack, giving WGDOS packing and unpacking.
  • Those packages have been tested with a specific build.

Packed PP

The libmo_unpack library can be used by Iris for decoding/unpacking PP files or Fields files that use an lbpack value of 1 or 4. This library is open source, licensed under the 2-clause BSD licence. It can be obtained from

Use of this library is not enabled by default. If this library is available its use can be enabled by installing Iris with the following command:

python --with-unpack install

Note that if this library and/or its associated header files are installed in a custom location then additional compiler arguments may need to be passed in to ensure that the Python extension module linking against it builds correctly:

python --with-unpack build_ext -I <custom include dir> \
      -L <custom link-time libdir> -R <custom runtime libdir> install

Custom site configuration

The default site configuration values can be overridden by creating the file iris/etc/site.cfg. For example, the following snippet can be used to specify a non-standard location for your udunits library:

udunits2_path = /path/to/

An example configuration file is available in iris/etc/site.cfg.template. See iris.config() for further configuration options.

Packaged distributions

The Enthought Python Distribution (EPD) for Windows, OS X or Redhat provides some of the dependencies for Iris as does Python (x, y) which tends to be updated a bit more frequently.