2020-05-29 07:50:55 +00:00
..
2023-02-16 10:50:55 +00:00
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
2020-12-03 18:50:53 +00:00
2020-05-29 07:50:55 +00:00
SPDX-License-Identifier: CC-BY-4.0
2019-08-07 08:56:23 +00:00
.. _installation:
2019-06-07 08:34:36 +00:00
##########################################
Installation
##########################################
2019-08-10 20:46:26 +00:00
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.
2019-08-06 14:53:32 +00:00
Clone the Repository
====================
2019-08-10 20:46:26 +00:00
First of all, clone the `PyPSA-Eur repository <https://github.com/PyPSA/pypsa-eur> `_ using the version control system `` git `` .
2019-08-06 14:53:32 +00:00
.. code :: bash
/some/other/path % cd /some/path/without/spaces
/some/path/without/spaces % git clone https://github.com/PyPSA/pypsa-eur.git
2019-08-07 08:56:23 +00:00
.. _deps:
2019-08-06 14:53:32 +00:00
Install Python Dependencies
===============================
2019-08-10 20:46:26 +00:00
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 <https://docs.conda.io/en/latest/miniconda.html> `_ , which is a mini version of `Anaconda <https://www.anaconda.com/> `_ 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 <https://docs.conda.io/projects/conda/en/latest/user-guide/install/> `_ .
2019-08-06 14:53:32 +00:00
2020-12-03 18:50:53 +00:00
The python package requirements are curated in the `envs/environment.yaml <https://github.com/PyPSA/pypsa-eur/blob/master/envs/environment.yaml> `_ file.
2019-08-06 14:53:32 +00:00
The environment can be installed and activated using
.. code :: bash
2020-12-03 18:50:53 +00:00
.../pypsa-eur % conda env create -f envs/environment.yaml
2019-08-06 14:53:32 +00:00
.../pypsa-eur % conda activate pypsa-eur
2023-03-06 11:44:44 +00:00
2020-12-05 16:54:50 +00:00
Note that activation is local to the currently open shell!
After opening a new terminal window, one needs to reissue the second command!
2019-08-08 15:13:36 +00:00
2020-05-28 18:36:45 +00:00
.. note ::
If you have troubles with a slow `` conda `` installation, we recommend to install
`mamba <https://github.com/QuantStack/mamba> `_ as a fast drop-in replacement via
.. code :: bash
2020-12-03 18:50:53 +00:00
2020-05-28 18:36:45 +00:00
conda install -c conda-forge mamba
and then install the environment with
2020-05-28 19:30:10 +00:00
.. code :: bash
2020-05-28 18:36:45 +00:00
2020-12-03 18:50:53 +00:00
mamba env create -f envs/environment.yaml
2020-05-28 18:36:45 +00:00
2019-08-08 15:13:36 +00:00
Install a Solver
================
2019-08-10 20:46:26 +00:00
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
2019-10-03 14:13:44 +00:00
- `Ipopt <https://coin-or.github.io/Ipopt/INSTALL.html> `_
2019-08-10 20:46:26 +00:00
- `Cbc <https://projects.coin-or.org/Cbc#DownloadandInstall> `_
- `GLPK <https://www.gnu.org/software/glpk/> `_ (`WinGLKP <http://winglpk.sourceforge.net/> `_ )
2022-07-26 13:01:21 +00:00
- `HiGHS <https://highs.dev/> `_
2019-08-10 20:46:26 +00:00
2020-12-05 16:54:50 +00:00
and the non-free, commercial software (for some of which free academic licenses are available)
2019-08-10 20:46:26 +00:00
2020-05-28 18:36:45 +00:00
- `Gurobi <https://www.gurobi.com/documentation/quickstart.html> `_
2019-08-10 20:46:26 +00:00
- `CPLEX <https://www.ibm.com/products/ilog-cplex-optimization-studio> `_
2020-12-05 16:54:50 +00:00
- `FICO® Xpress Solver <https://www.fico.com/de/products/fico-xpress-solver> `_
2019-08-08 15:13:36 +00:00
2020-01-24 16:02:09 +00:00
For installation instructions of these solvers for your operating system, follow the links above.
2020-12-05 16:54:50 +00:00
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.
2019-08-10 20:46:26 +00:00
.. seealso ::
`Getting a solver in the PyPSA documentation <https://pypsa.readthedocs.io/en/latest/installation.html#getting-a-solver-for-linear-optimisation> `_
2020-01-24 16:02:09 +00:00
.. note ::
The rules :mod: `cluster_network` and :mod: `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
2020-12-05 16:54:50 +00:00
also Ipopt to be installed. For an open-source solver setup install in your `` conda `` environment on OSX/Linux
2020-01-24 16:02:09 +00:00
.. code :: bash
2020-02-02 10:07:29 +00:00
conda activate pypsa-eur
2020-01-24 16:02:09 +00:00
conda install -c conda-forge ipopt coincbc
and on Windows
.. code :: bash
2020-12-03 18:50:53 +00:00
2020-02-02 10:07:29 +00:00
conda activate pypsa-eur
2020-01-24 16:02:09 +00:00
conda install -c conda-forge ipopt glpk
2020-12-03 18:50:53 +00:00
2023-02-16 10:50:55 +00:00
or
.. code :: bash
conda activate pypsa-eur
pip install highspy
2020-01-24 16:02:09 +00:00
2019-10-03 10:37:23 +00:00
.. _defaultconfig:
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.
2020-12-03 18:50:53 +00:00
An example configuration `` config.default.yaml `` is maintained in the repository.
2019-10-03 10:37:23 +00:00
More details on the configuration options are in :ref: `config` .
Before first use, create a `` config.yaml `` by copying the example.
.. code :: bash
.../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.
2020-07-08 16:37:12 +00:00