.. SPDX-FileCopyrightText: 2021 The eminus developers SPDX-License-Identifier: Apache-2.0 .. _installation: Installation ************ | The code is written for Python 3.7+. | The following packages are needed for a minimum working installation * `NumPy `_ * `SciPy `_ | All packages used have `OSI-approved `_ licenses and are publicly visible. | The code is tested to run under Ubuntu, Debian, macOS, Windows, and NixOS. Installation with pip ===================== The `package `_ and all necessary dependencies can be installed with .. code-block:: console pip install eminus Depending on your operating system you may have to create a virtual environment. This can be done, e.g., with .. code-block:: console python3 -m venv .venv source .venv/bin/activate python3 -m pip install eminus Alternatively, you can create an installation by downloading the source code .. code-block:: console git clone https://gitlab.com/wangenau/eminus.git cd eminus pip install . To also install all optional dependencies to use built-in extras, use either .. code-block:: console pip install eminus[all] or for an installation after downloading the source code, use .. code-block:: console pip install .[all] To install only selected extras, follow the instructions given in :mod:`~eminus.extras`. Docker image ============ To use a containerized version of the code, a `Docker container `_ has been created with all extras installed. The following command starts the container and a Jupyter notebook server .. code-block:: console docker run -it -p 8888:8888 wangenau/eminus:version Opening the displayed URL in a browser will open the Jupyter environment. Make sure to replace :code:`version` with the version you want to use. You can also pass command line arguments to the container, e.g., to start a Python environment .. code-block:: console docker run -it wangenau/eminus:version python Nix usage ========= To use the package under `Nix `_ one can easily create a development shell with all dependencies and (almost) all extras available. To do so, run the following commands on your Nix machine .. code-block:: console git clone https://gitlab.com/wangenau/eminus.git cd eminus nix develop