Installing FitBenchmarking and default fitting packages

We recommend using Python 3.7.1+ for running/installing Fitbenchmarking. The easiest way to install FitBenchmarking is by using the Python package manager, pip.

Installing via pip

FitBenchmarking can be installed via the command line by entering:

python -m pip install fitbenchmarking[bumps,DFO,gradient_free,minuit,SAS,numdifftools,lmfit,nlopt]

This will install the latest stable version of FitBenchmarking. For all available versions please visit the FitBenchmarking PyPI project. FitBenchmarking can also use additional software that cannot be installed using pip; please see Installing External Software for details.


This install will include additional optional packages – see Extra dependencies. Any of the dependencies in the square brackets can be omitted, if required, and that package will not be available for Benchmarking, or will use the version of the package already on your system, if appropriate.

Installing from source

You may instead wish to install from source, e.g., to get the very latest version of the code that is still in development.

  1. Download this repository or clone it using git: git clone

  2. Open up a terminal (command prompt) and go into the fitbenchmarking directory.

  3. Once you are in the right directory, we recommend that you type

    python -m pip install .[bumps,DFO,gradient_free,minuit,SAS,numdifftools,lmfit,nlopt]
  4. Additional software that cannot be installed via pip can also be used with FitBenchmarking. Follow the instructions at Installing External Software.

Extra dependencies

In addition to the external packages described at Installing External Software, some optional dependencies can be installed directly by FitBenchmarking. These are installed by issuing the commands

python -m pip install fitbenchmarking['option-1','option-2',...]


python -m pip install .['option-1','option-2',...]

where valid strings option-x are:

  • bumps– installs the Bumps fitting package.

  • DFO – installs the DFO-LS and DFO-GN fitting packages.

  • gofit – installs the GOFit fitting package.

  • gradient-free – installs the Gradient-Free-Optimizers fitting package

  • levmar – installs the levmar fitting package (suitable for Python up to 3.8, see Levmar). Note that the interface we use also requires BLAS and LAPLACK to be installed on the system, and calls to this minimizer will fail if these libraries are not present.

  • mantid – installs the h5py and pyyaml modules.

  • matlab – installs the dill module required to run matlab controllers in fitbenchmarking

  • minuit – installs the Minuit fitting package.

  • SAS – installs the Sasmodels fitting package and the tinycc module.

  • numdifftools – installs the numdifftools numerical differentiation package.

  • nlopt– installs the NLopt fitting package.

  • lmfit– installs the LMFIT and emcee fitting package.

  • paramonte – installs the Paramonte package.

  • hogben – installs the HOGBEN package.