# Installing Supysonic

Supysonic is written in Python and supports Python 3.6 through 3.10.

## Linux

Currently, only Debian-based distributions might provide Supysonic in their package repositories. Install the package `supysonic` using apt:

    $ apt install supysonic

This will install Supysonic along with the minimal dependencies it needs to run.

If you plan on using it with a MySQL or PostgreSQL database you also need the corresponding Python package, `python3-pymysql` for MySQL or `python3-psycopg2` for PostgreSQL.

    $ apt install python3-pymysql

    $ apt install python3-psycopg2

For other distributions, you might consider installing with pip or from Docker images.

## Windows

Note

While Supysonic hasn’t been thoroughly tested on Windows, it should work. If something is broken, we’re really sorry. Don’t hesitate to open an issue on GitHub.

Most Windows users do not have Python installed by default, so we begin with the installation of Python itself. To check if you already have Python installed, open the Command Prompt (``Win`-`R`` and type cmd). Once the command prompt is open, type python --version and press Enter. If Python is installed, you will see the version of Python printed to the screen. If you do not have Python installed, head over to the Python website and install one of the compatible Python versions. You need at least Python 3.6, but you can go up to the latest 3.10.

Once Python is installed, you can install Supysonic using pip. Refer to the installation instructions below for more information.

## pip

Simply install the package `supysonic` with pip:

    $ pip install supysonic

This will install Supysonic along with the minimal dependencies it needs, but those don’t include the requirements for the web server. For this you’ll need to install either `gevent`, `gunicorn` or `waitress`.

    $ pip install gevent

    $ pip install gunicorn

    $ pip install waitress

If you plan on using it with a MySQL or PostgreSQL database you also need the corresponding package, `pymysql` for MySQL or `psycopg2-binary` for PostgreSQL.

    $ pip install pymysql

    $ pip install psycopg2-binary