OS
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
I am trying to install Superset on an EC2 Linux instance but can't seem to get past of superset db upgrade stage as there seems to be some conflict. Here is what I have done
sudo yum update
sudo yum install gcc gcc-c++ libffi-devel python3-devel python3-pip python3-wheel openssl-devel cyrus-sasl-devel openldap-devel
pip3 install --upgrade pip
pip install virtualenv
python3 -m venv venv
. venv/bin/activate
pip install apache-superset
I see two errors here
ERROR: flask-appbuilder 3.4.5 has requirement Flask-WTF<0.15.0,>=0.14.2, but you'll have flask-wtf 1.0.1 which is incompatible.
ERROR: flask-caching 2.0.0 has requirement cachelib>=0.9.0, but you'll have cachelib 0.4.1 which is incompatible.
I resolved both with
pip install Flask-WTF==0.14.3
pip install cachelib==0.9.0
but when I run superset db upgrade
I am getting
Traceback (most recent call last):
File "/home/ec2-user/venv/lib64/python3.7/site-packages/pkg_resources/init.py", line 584, in _build_master
ws.require(requires)
File "/home/ec2-user/venv/lib64/python3.7/site-packages/pkg_resources/init.py", line 901, in require
needed = self.resolve(parse_requirements(requirements))
File "/home/ec2-user/venv/lib64/python3.7/site-packages/pkg_resources/init.py", line 792, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (cachelib 0.9.0 (/home/ec2-user/venv/lib/python3.7/site-packages), Requirement.parse('cachelib<0.5,>=0.4.1'), {'apache-superset'})
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ec2-user/venv/bin/superset", line 6, in
from pkg_resources import load_entry_point
File "/home/ec2-user/venv/lib64/python3.7/site-packages/pkg_resources/init.py", line 3261, in
@_call_aside
File "/home/ec2-user/venv/lib64/python3.7/site-packages/pkg_resources/init.py", line 3245, in _call_aside
f(*args, **kwargs)
File "/home/ec2-user/venv/lib64/python3.7/site-packages/pkg_resources/init.py", line 3274, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/home/ec2-user/venv/lib64/python3.7/site-packages/pkg_resources/init.py", line 586, in _build_master
return cls._build_from_requirements(requires)
File "/home/ec2-user/venv/lib64/python3.7/site-packages/pkg_resources/init.py", line 599, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/home/ec2-user/venv/lib64/python3.7/site-packages/pkg_resources/init.py", line 787, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'cachelib<0.5,>=0.4.1' distribution was not found and is required by apache-superset
if I try to downgrade to 0.4.1 than flask complains and I still get this error in "superset db upgrade"
Either documentation at https://superset.apache.org/docs/installation/installing-superset-from-scratch is wrong or build
pls help fix this
the above error went away after
pip install --upgrade setuptools pip
but new error in superset db upgrade
superset db upgrade
Traceback (most recent call last):
File "/home/ec2-user/venv/bin/superset", line 11, in
load_entry_point('apache-superset==1.5.1', 'console_scripts', 'superset')()
File "/home/ec2-user/venv/lib64/python3.7/site-packages/pkg_resources/init.py", line 486, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/home/ec2-user/venv/lib64/python3.7/site-packages/pkg_resources/init.py", line 2867, in load_entry_point
return ep.load()
File "/home/ec2-user/venv/lib64/python3.7/site-packages/pkg_resources/init.py", line 2471, in load
return self.resolve()
File "/home/ec2-user/venv/lib64/python3.7/site-packages/pkg_resources/init.py", line 2477, in resolve
module = import(self.module_name, fromlist=['name'], level=0)
File "/home/ec2-user/venv/lib64/python3.7/site-packages/superset/init.py", line 21, in
from superset.app import create_app
File "/home/ec2-user/venv/lib64/python3.7/site-packages/superset/app.py", line 23, in
from superset.initialization import SupersetAppInitializer
File "/home/ec2-user/venv/lib64/python3.7/site-packages/superset/initialization/init.py", line 51, in
from superset.security import SupersetSecurityManager
File "/home/ec2-user/venv/lib64/python3.7/site-packages/superset/security/init.py", line 17, in
from superset.security.manager import SupersetSecurityManager # noqa: F401
File "/home/ec2-user/venv/lib64/python3.7/site-packages/superset/security/manager.py", line 68, in
from superset.security.guest_token import (
File "/home/ec2-user/venv/lib64/python3.7/site-packages/superset/security/guest_token.py", line 18, in
from typing import List, Optional, TypedDict, Union
ImportError: cannot import name 'TypedDict' from 'typing' (/usr/lib64/python3.7/typing.py)
I am also getting this error on Ubuntu 20.0.4
I am also getting this error on Centos 7
I was able to resolve this error by following commands
pip install --upgrade setuptools pip
pip install apache-superset (ran again after above command)
export FLASK_APP=superset (not related with this error but required for superset db upgrade )
superset db upgrade
It works! thanks @jinsthomas !