apache / superset

Apache Superset is a Data Visualization and Data Exploration Platform
https://superset.apache.org/
Apache License 2.0
62.79k stars 13.87k forks source link

Installation issues #23171

Closed paulvanharen closed 8 months ago

paulvanharen commented 1 year ago

A fresh install of superset doesn't yield a working installation. With some experimentation, I was able to get the installation working. With this report I'd like to share my learnings, so that these can be incorporated in the documentation and/or pip setup information.

How to reproduce the bug

# Clean former installations
rm -rf ~/.superset
rm -rf superset

#create environment
mkdir superset
cd superset
python3.10 -m venv venv
. ./venv/bin/activate
pip install --upgrade pip

# Install Superset
pip install apache-superset

Experiments and learnings

Installing on Python3.10 fails

Installing on Python 3.10 fails as installing Numpy fails. It is not available as wheel and building it on the fly fails because of syntax errors.

Installing on Python3.9

Replacing python3.10 -m venv venv by Python3.9 -m venv venv allows Superset to install. Running the next command

superset db upgrade

causes errors:

ModuleNotFoundError: No module named 'cryptography.hazmat.backends.openssl.x509'

Downgrading cryptography, flask and werkzeug as per https://askubuntu.com/questions/1452610/modulenotfounderror-no-module-named-cryptography-hazmat-backends-openssl-x509 using

pip install cryptography==38.0.2  Flask==2.1.0  Werkzeug==2.0.0

changes the error to:

ModuleNotFoundError: No module named 'wtforms.ext'

is remedied by downgrading WTForms

pip install WTForms==2.3.3

Now, superset db upgrade runs fine and to completion.

Environment

Jydago commented 1 year ago

Thanks for sharing your learnings! Worked for me! Though it is a bit worrying when installing this downgraded cryptography it logs Warning: The locked version 38.0.2 for cryptography is a yanked version. Reason for being yanked: Regression in OpenSSL. This makes me think that it maybe shouldn't just be a documentation fix, but also to update the dependencies and corresponding code to avoid this issue?

paulvanharen commented 1 year ago

Some good news: In the release candidate 2.1.0 RC01 these problems are solved. Unfortunately, other (new) issues prevent a clean install.

EMCP commented 1 year ago

I can install now in Ubuntu 20.04 , Py3.8 with the following

pip install --upgrade pip
sudo -u ubuntu pip install --upgrade pip --no-warn-script-location
sudo -u ubuntu pip install testresources --no-warn-script-location
sudo -u ubuntu pip install aiohttp==3.8.1 aiosignal==1.2.0 alembic==1.6.5 amqp==5.1.0 apispec[yaml]==3.3.2 async-timeout==4.0.2 attrs==21.2.0 babel==2.9.1 backoff==1.11.1 billiard==3.6.4.0 bleach==3.3.1 brotli==1.0.9 cachelib==0.4.1 celery==5.2.2 cffi==1.14.6 charset-normalizer==2.0.4 click==8.0.4 click-didyoumean==0.3.0 click-plugins==1.1.1 click-repl==0.2.0 colorama==0.4.4 convertdate==2.4.0 cron-descriptor==1.2.24 croniter==1.0.15 cryptography==3.4.7 deprecation==2.1.0 dnspython==2.1.0 email-validator==1.1.3 flask==2.0.3 flask-appbuilder==4.1.3 flask-babel==1.0.0 flask-caching==1.10.1 flask-compress==1.10.1 flask-jwt-extended==4.3.1 flask-login==0.4.1 flask-migrate==3.1.0 flask-sqlalchemy==2.5.1 flask-talisman==0.8.1 flask-wtf==0.14.3 frozenlist==1.3.0 func-timeout==4.3.5 geographiclib==1.52 geopy==2.2.0 graphlib-backport==1.0.3 gunicorn==20.1.0 hashids==1.3.1 holidays==0.14.2 humanize==3.11.0 idna==3.2 isodate==0.6.0 itsdangerous==2.1.1 jinja2==3.0.3 jsonschema==3.2.0 kombu==5.2.4 korean-lunar-calendar==0.2.1 mako==1.1.4 markdown==3.3.4 markupsafe==2.0.1 marshmallow==3.13.0 marshmallow-enum==1.5.1 marshmallow-sqlalchemy==0.23.1 msgpack==1.0.2 multidict==5.1.0 numpy==1.22.1 packaging==21.3 pandas==1.3.4 parsedatetime==2.6 pgsanity==0.2.9 polyline==1.4.0 prison==0.2.1 prompt-toolkit==3.0.28 pyarrow==5.0.0 pycparser==2.20 pyjwt==2.4.0 pymeeus==0.5.11 pyparsing==3.0.6 pyrsistent==0.16.1 python-dateutil==2.8.2 python-dotenv==0.19.0 python-editor==1.0.4 python-geohash==0.8.5 pytz==2021.3 pyyaml==5.4.1 redis==3.5.3 selenium==3.141.0 simplejson==3.17.3 six==1.16.0 slackclient==2.5.0 sqlalchemy==1.3.24 sqlalchemy-utils==0.37.8 sqlparse==0.3.0 tabulate==0.8.9 typing-extensions==3.10.0.0 urllib3==1.26.6 vine==5.0.0 wcwidth==0.2.5 webencodings==0.5.1 werkzeug==2.0.3 wtforms==2.3.3 wtforms-json==0.3.3 yarl==1.6.3 --no-warn-script-location
sudo -u ubuntu pip install psycopg2-binary pillow gunicorn gevent --no-warn-script-location
sudo -u ubuntu pip install requests --upgrade --no-warn-script-location
sudo -u ubuntu pip install trino thrift pyhive --no-warn-script-location

status-set maintenance "About to pip install apache-superset $(date +"%H:%M")"
juju-log -l "WARNING" "About to pip install apache-superset"
sudo -u ubuntu pip install apache-superset --no-warn-script-location
rusackas commented 8 months ago

This is likely fixed by now, and is pretty out of date if not. If people are still encountering this in current versions (3.x) please open a new Issue or a PR to address the problem.