Download and installation¶
Requirements¶
Calliope is tested on Linux, macOS, and Windows.
Running Calliope requires four things:
- The Python programming language, at least version 3.12.
- A number of Python add-on modules including Pyomo, Pandas and Xarray.
- An optimisation solver: Calliope has been tested with CBC, GLPK, and Gurobi. Any other solver that is compatible with Pyomo should also work.
- The Calliope software itself.
Recommended installation methods¶
We recommend two installation paths depending on your use-case:
condaorpixi(recommended): use conda or pixi to ensure you have all necessary solver and binary dependencies.uvorpip: use pip oruvfor fast Python package installation. You will need to ensure you have all non-Python libraries installed and available if taking this approach.
If you are interested in developing Calliope, see our contributing page for specific installation instructions.
conda or pixi (recommended)¶
Install pixi by following the official installation instructions.
Then add calliope to your project workspace:
Install conda by following the official installation instructions.
Then, create an environment including calliope:
uv or pip¶
If you only need to install Calliope from PyPI, use:
Warning
Although possible, we do not recommend installing Calliope directly via pip or uv.
Non-python binaries are not installed with pip, some of which are necessary for stable operation (e.g., libnetcdf).
Choosing a solver¶
You cannot solve a Calliope model until you have installed a solver. The easiest solver to install is CBC, which is included if you follow the recommended installation instructions above. CBC (open-source) or Gurobi (commercial) are recommended for large problems, and have been confirmed to work with Calliope. The following subsections provide additional detail on how to install a solver. This list is not exhaustive; any solvers supported by Pyomo can be used.
Note
The HiGHS solver is not supported by our Pyomo backend. This is due to the HiGHS interface not being supported by the Pyomo kernel interface, which we use.
CBC¶
CBC is our recommended option if you want a free and open-source solver.
If you do not have it in your working environment (i.e., there is no,thing listed when you call conda list cbc/pixi list cbc) then it can be installed on all platforms:
GLPK¶
GLPK is free and open-source, but can take too much time and/or too much memory on larger problems.
GLPK can be installed from conda-forge on all platforms:
Unlike CBC, it is possible to extract shadow prices from a model solved with GLPK, which is why you may with to use it instead of CBC.
Gurobi¶
Gurobi is commercial but significantly faster than CBC and GLPK, which is relevant for larger problems. It needs a license to work, which can be obtained for free for academic use.
The Gurobi solver interface can be installed on all platforms:
This also gives you access to the grbgetkey command in your command line, which you will need to activate your license for use locally.
Note
If using the Gurobi solver, you can also leverage the reduced time and memory consumption of our Gurobi optimisation problem backend - this circumvents Pyomo entirely.
CPLEX¶
Another commercial alternative is CPLEX. IBM offers academic licenses for CPLEX; refer to the IBM website for details.
Tip
After installing CPLEX, it is important to ensure that the path to the solver is part of the environment variables, which is typically not automatic. Please follow the steps given for your operating system on CPLEX's dedicated documentation.
Customising the solver's performance¶
Solvers typically allow users to specify custom solver_options, by which you may tailor their performance to what
best suits the features of the model you are working with.
For further nformation, see our guide on solver options customisation.