The subsequently described installation steps are demonstrated as shell commands, where the path before the % sign denotes the directory in which the commands following the % should be entered.

Clone the Repository

First of all, clone the PyPSA-Eur repository using the version control system git. The path to the directory into which the git repository is cloned, must not have any spaces! If you do not have git installed, follow installation instructions here.

/some/other/path % cd /some/path/without/spaces

/some/path/without/spaces % git clone

Install Python Dependencies

PyPSA-Eur relies on a set of other Python packages to function. We recommend using the package manager and environment management system conda to install them. Install miniconda, which is a mini version of Anaconda that includes only conda and its dependencies or make sure conda is already installed on your system. For instructions for your operating system follow the conda installation guide.

The python package requirements are curated in the envs/environment.yaml file. The environment can be installed and activated using

.../pypsa-eur % conda env create -f envs/environment.yaml

.../pypsa-eur % conda activate pypsa-eur

Note that activation is local to the currently open shell! After opening a new terminal window, one needs to reissue the second command!


If you have troubles with a slow conda installation, we recommend to install mamba as a fast drop-in replacement via

conda install -c conda-forge mamba

and then install the environment with

mamba env create -f envs/environment.yaml

Install a Solver

PyPSA passes the PyPSA-Eur network model to an external solver for performing a total annual system cost minimization with optimal power flow. PyPSA is known to work with the free software

and the non-free, commercial software (for some of which free academic licenses are available)

For installation instructions of these solvers for your operating system, follow the links above. Commercial solvers such as Gurobi and CPLEX currently significantly outperform open-source solvers for large-scale problems. It might be the case that you can only retrieve solutions by using a commercial solver.


The rules cluster_network and simplify_network solve a quadratic optimisation problem for clustering. The open-source solvers Cbc and GlPK cannot handle this. A fallback to Ipopt is implemented in this case, but requires also Ipopt to be installed. For an open-source solver setup install in your conda environment on OSX/Linux

conda activate pypsa-eur
conda install -c conda-forge ipopt coincbc

and on Windows

conda activate pypsa-eur
conda install -c conda-forge ipopt glpk


On Windows, new versions of ipopt have caused problems. Consider downgrading to version 3.11.1.

Set Up the Default Configuration

PyPSA-Eur has several configuration options that must be specified in a config.yaml file located in the root directory. An example configuration config.default.yaml is maintained in the repository. More details on the configuration options are in Configuration.

Before first use, create a config.yaml by copying the example.

.../pypsa-eur % cp config.default.yaml config.yaml

Users are advised to regularly check their own config.yaml against changes in the config.default.yaml when pulling a new version from the remote repository.