--- title: PyPI hide_title: true sidebar_position: 4 version: 1 --- import useBaseUrl from "@docusaurus/useBaseUrl"; # Installing Superset from PyPI

This page describes how to install Superset using the `apache_superset` package [published on PyPI](https://pypi.org/project/apache_superset/). ## OS Dependencies Superset stores database connection information in its metadata database. For that purpose, we use the cryptography Python library to encrypt connection passwords. Unfortunately, this library has OS level dependencies. **Debian and Ubuntu** Ubuntu **24.04** uses python 3.12 per default, which currently is not supported by Superset. You need to add a second python installation of 3.11 and install the required additional dependencies. ```bash sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update sudo apt install python3.11 python3.11-dev python3.11-venv build-essential libssl-dev libffi-dev libsasl2-dev libldap2-dev default-libmysqlclient-dev ``` In Ubuntu **20.04 and 22.04** the following command will ensure that the required dependencies are installed: ```bash sudo apt-get install build-essential libssl-dev libffi-dev python3-dev python3-pip libsasl2-dev libldap2-dev default-libmysqlclient-dev ``` In Ubuntu **before 20.04** the following command will ensure that the required dependencies are installed: ```bash sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip libsasl2-dev libldap2-dev default-libmysqlclient-dev ``` **Fedora and RHEL-derivative Linux distributions** Install the following packages using the `yum` package manager: ```bash sudo yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel cyrus-sasl-devel openldap-devel ``` In more recent versions of CentOS and Fedora, you may need to install a slightly different set of packages using `dnf`: ```bash sudo dnf install gcc gcc-c++ libffi-devel python3-devel python3-pip python3-wheel openssl-devel cyrus-sasl-devel openldap-devel ``` Also, on CentOS, you may need to upgrade pip for the install to work: ```bash pip3 install --upgrade pip ``` **Mac OS X** If you're not on the latest version of OS X, we recommend upgrading because we've found that many issues people have run into are linked to older versions of Mac OS X. After updating, install the latest version of XCode command line tools: ```bash xcode-select --install ``` We don't recommend using the system installed Python. Instead, first install the [homebrew](https://brew.sh/) manager and then run the following commands: ```bash brew install readline pkg-config libffi openssl mysql postgresql@14 ``` You should install a recent version of Python. Refer to the [pyproject.toml](https://github.com/apache/superset/blob/master/pyproject.toml) file for a list of Python versions officially supported by Superset. We'd recommend using a Python version manager like [pyenv](https://github.com/pyenv/pyenv) (and also [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv)). Let's also make sure we have the latest version of `pip` and `setuptools`: ```bash pip install --upgrade setuptools pip ``` Lastly, you may need to set LDFLAGS and CFLAGS for certain Python packages to properly build. You can export these variables with: ```bash export LDFLAGS="-L$(brew --prefix openssl)/lib" export CFLAGS="-I$(brew --prefix openssl)/include" ``` These will now be available when pip installing requirements. ## Python Virtual Environment We highly recommend installing Superset inside of a virtual environment. You can create and activate a virtual environment using the following commands. Ensure you are using a compatible version of python. You might have to explicitly use for example `python3.11` instead of `python3`. ```bash # virtualenv is shipped in Python 3.6+ as venv instead of pyvenv. # See https://docs.python.org/3.6/library/venv.html python3 -m venv venv . venv/bin/activate ``` Or with pyenv-virtualenv: ```bash # Here we name the virtual env 'superset' pyenv virtualenv superset pyenv activate superset ``` Once you activated your virtual environment, all of the Python packages you install or uninstall will be confined to this environment. You can exit the environment by running `deactivate` on the command line. ### Installing and Initializing Superset First, start by installing `apache_superset`: ```bash pip install apache_superset ``` Then, define mandatory configurations, SECRET_KEY and FLASK_APP: ```bash export SUPERSET_SECRET_KEY=YOUR-SECRET-KEY # For production use, make sure this is a strong key, for example generated using `openssl rand -base64 42`. See https://superset.apache.org/docs/configuration/configuring-superset#specifying-a-secret_key export FLASK_APP=superset ``` Then, you need to initialize the database: ```bash superset db upgrade ``` Finish installing by running through the following commands: ```bash # Create an admin user in your metadata database (use `admin` as username to be able to load the examples) superset fab create-admin # Load some data to play with superset load_examples # Create default roles and permissions superset init # To start a development web server on port 8088, use -p to bind to another port superset run -p 8088 --with-threads --reload --debugger ``` If everything worked, you should be able to navigate to `hostname:port` in your browser (e.g. locally by default at `localhost:8088`) and login using the username and password you created.