# Installation

This guide describes how to install midas on Linux, OS-X, and Windows.

## Linux

This guide is based on Arch Linux 5.17, 64bit, but this should for work for other distributions as well.

The midas package requires Python >= 3.8. We recommend to use a virtualenv to avoid messing up your system environment. Use your distributions’ package manager to install pip and virtualenv. Make sure which python version is linked to the python command (in some distros this is python2). To be sure, specify the python interpreter when creating the env:

    $ virtualenv -p /usr/bin/python3 ~/.virtualenvs/midas
    $ source ~/.virtualenv/midas/bin/activate

Now you can install midas-mosaik from the pypi package repository

    (midas) $ pip install midas-mosaik

or from the source code.

    (midas) $ pip install git+https://gitlab.com/midas-mosaik/midas.git

Finally, you can test your installation by typing:

    (midas) $ midasctl --help

into the console, which should print information about the command line tool of midas.

## OS-X

10.15 Catalina (Coming soon)

## Windows

There are several ways to install MIDAS on Windows. If you’re using conda or pycharm, you probably know how to install packages into your system. For that reason, this guide targets a system without Python installed (you can, of course, join the guide at any point).

### Install python

First, you need to download and install Python on your System. Visit https://www.python.org/downloads/release/python-397/ to select and download the latest version of python. Make sure to use the 64bit version (unless your system is 32bit only).

Once the installer is downloaded, double-click to start the setup. During the installation, make sure to mark the options “Add Python to PATH” and “Install for all users”. As soon as the installation finishes, it may be required to log out and log in from your system or (to be safe) restart the whole system. You can test your installation via Powershell (Win+S, then type “Powershell”, and execute as administrator). Once the Powershell opens, type:

    PS > python --version

If your installation was successful, the command prints out the installed version of Python (e.g.: “Python 3.9.7”)

To use virtualenvs inside of Powershell, you need to allow the execution of scripts. This can be achieved by typing the following command into the Powershell (still requires an administrator shell).

    PS > Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Afterwards, you should install virtualenv with

    PS > python -m pip install virtualenv

Afterwards, you should close your administrator Powershell and open a normal Powershell. Create and activate the virtualenv (but it may be helpful to first install the C++ compiler in the next step).

    PS > python -m virtualenv PATH\\TO\\.virtualenvs\\midas
    PS > PATH\\TO\\.virtualenvs\\midas\\Scripts\\activate.ps1

### Install C++-Compiler

Unfortunately, some packages need to be compiled from source and, since Windows has no C++ compiler shipped per default, a compiler needs to be installed. The easiest way to to so is to download and install the latest Visual Studio Community edition from https://docs.microsoft.com/de-de/visualstudio/releases/2019/release-notes.

Alternatively, you can try to use pre-compiled binaries, which can be found https://www.lfd.uci.edu/~gohlke/pythonlibs/. Make sure to select the appropriate package version. Some packages you may need (Python 3.9, 64bit):

> - numpy‑1.20.3+mkl‑cp39‑cp39‑win_amd64.whl

> - numexpr‑2.7.3‑cp39‑cp39‑win_amd64.whl

> - llvmlite‑0.37.0‑cp39‑cp39‑win_amd64.whl

> - numba‑0.54.0‑cp39‑cp39‑win_amd64.whl

> - tables‑3.6.1‑cp39‑cp39‑win_amd64.whl

They can be install with pip, e.g.:

    (midas) PS > pip install numpy-1.20.3+mkl-cp39-cp39-win_amd64.whl

However, on my test machine, I had no luck using this method.

### Install the packages

With the C++ compiler installed, you should be able to install midas-mosaik directly from pypi:

    (midas) PS > pip install midas-mosaik

Finally, to test your installation, type

    (midas) PS > midasctl --help

You should see information about the midasctl command.