mirror of
https://github.com/apache/superset.git
synced 2026-04-07 18:35:15 +00:00
165 lines
5.4 KiB
Plaintext
165 lines
5.4 KiB
Plaintext
---
|
|
title: PyPI
|
|
hide_title: true
|
|
sidebar_position: 4
|
|
version: 1
|
|
---
|
|
|
|
import useBaseUrl from "@docusaurus/useBaseUrl";
|
|
|
|
# Installing Superset from PyPI
|
|
|
|
<img src={useBaseUrl("/img/pypi.png" )} width="150" />
|
|
<br /><br />
|
|
|
|
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.
|