CCL can be installed from pip, conda, or directly from source. It is configured to install most of its requirements automatically. However, if you want to use CCL with Boltzmann codes like CLASS or CAMB, or do perturbation theory calculations with FAST-PT, you will need to make sure these packages and their Python wrappers are installed as well. See the instructions for Getting a Boltzmann Code and Getting FAST-PT below.

CCL works on Linux or Mac OS. Windows installation is not supported.

Once installed, you can take CCL for a spin by following the Quickstart instructions.

With conda

Installing CCL with conda will also install a copy of pycamb, the Python wrapper for CAMB in your environment.

$ conda install -c conda-forge pyccl

With pip

The PyPi installation will actually build a new copy of CCL from source as the code is installed. In order to do this, you will need CMake installed on your system. See the instructions below for Getting CMake.

Once you have CMake, simply run:

$ pip install pyccl

Getting a Boltzmann Code

In order to use CCL with a Boltzmann code, you will need the Python wrappers for either CLASS or CAMB.


In order to use CCL with CLASS, you need to install the CLASS Python wrapper classy. See their instructions here. Note that you may need to edit the Makefile in the CLASS repo to work with your system. Please report any installation issues to the CLASS developers on their issues tracker.


If you are working in a conda environment, then CAMB is available via

$ conda install -c conda-forge camb

An installation with pip should work as well. See the CAMB repo for more details. Note that if you installed CCL with conda, camb should already be in your environment.


In order to use CCL with ISiTGR, you need to install the ISiTGR Python wrapper isitgr with:

$ pip install isitgr [–user]

See further instructions here.

If you are working in a conda environment, then ISiTGR is also available via

$ conda install -c conda-forge isitgr

Note that if you installed CCL with conda, isitgr should already be in your environment.

Getting FAST-PT

To use FAST-PT with CCL, you can install it with:

$ pip install fast-pt

Note the hyphen in the package name! You can also get it directly from the FAST-PT repo.

Getting CMake

The pip installation of CCL requires that CMake is installed on your system. CMake is available from package managers like apt-get and homebrew. You need version 3.2 or higher.


$ sudo apt-get install cmake


On MacOS X you can either install with a DMG from this page or with a package manager such as homebrew, MacPorts, or Fink.

For instance with homebrew, you can run

$ brew install cmake

Known Installation Issues

  1. For some Mac OSX versions, the standard C headers are not in the usual spot, resulting in an error of fatal error: 'stdio.h' file not found. This can be resolved with the command:

    $ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

    which will install all the required headers into /usr/include.

    On Mac OSX 10.15 or greater, this patch is no longer included. Instead, you can manually add the location of required headers to your CPATH by running the following, or adding to your .bash_profile:

    $ export CPATH="/Applications/"
  2. Newer versions of Xcode do not automatically have the required command line tools installed. This can be done from the command line:

    $ sudo xcode-select --install
    $ sudo xcodebuild -license

Uninstalling CCL

CCL can be uninstalled using the uninstallation functionality of the package manager (i.e., conda or pip) you used to install it. When in doubt, first try with conda and then try with pip. In either case, the command is

$ [conda|pip] uninstall pyccl