apache / superset

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

Installation Error on Clean Ubuntu 20.04 LTS #15818

Closed AlvaroFFF closed 2 years ago

AlvaroFFF commented 3 years ago

Hi all,

When trying to install Apache Superset on a clear Ubuntu 20.04 virtual machine I simply follow these steps:

  1. sudo apt-get install build-essential libssl-dev libffi-dev python3-dev python3-pip libsasl2-dev libldap2-dev
  2. pip install virtualenv
  3. python3 -m venv superset -> Fails and suggests me to execute "apt install python3.8-venv"
  4. sudo apt install python3.8-venv
  5. python3 -m venv superset
  6. . superset/bin/activate
  7. pip install apache-superset

Installation ends with errors:

Building wheels for collected packages: apache-superset, cron-descriptor, holidays, pgsanity, python-geohash, sqlalchemy-utils, wtforms-json, Flask-JWT-Extended, Flask-Login, Flask-OpenID, pymeeus Building wheel for apache-superset (setup.py) ... error ERROR: Command errored out with exit status 1: command: /home/alvaro/superset/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9cjmkhn2/apache-superset/setup.py'"'"'; file='"'"'/tmp/pip-install-9cjmkhn2/apache-superset/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-6if0c298 cwd: /tmp/pip-install-9cjmkhn2/apache-superset/ Complete output (10 lines): -==--==--==--==--==--==--==--==--==--==--==--==--==--==--==- VERSION: 1.2.0 GIT SHA: -==--==--==--==--==--==--==--==--==--==--==--==--==--==--==- usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: setup.py --help [cmd1 cmd2 ...] or: setup.py --help-commands or: setup.py cmd --help

error: invalid command 'bdist_wheel'

ERROR: Failed building wheel for apache-superset Running setup.py clean for apache-superset Building wheel for cron-descriptor (setup.py) ... error ERROR: Command errored out with exit status 1: command: /home/alvaro/superset/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9cjmkhn2/cron-descriptor/setup.py'"'"'; file='"'"'/tmp/pip-install-9cjmkhn2/cron-descriptor/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-pssje3qe cwd: /tmp/pip-install-9cjmkhn2/cron-descriptor/ Complete output (6 lines): usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: setup.py --help [cmd1 cmd2 ...] or: setup.py --help-commands or: setup.py cmd --help

error: invalid command 'bdist_wheel'

ERROR: Failed building wheel for cron-descriptor Running setup.py clean for cron-descriptor Building wheel for holidays (setup.py) ... error ERROR: Command errored out with exit status 1: command: /home/alvaro/superset/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9cjmkhn2/holidays/setup.py'"'"'; file='"'"'/tmp/pip-install-9cjmkhn2/holidays/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-cuyj6ksy cwd: /tmp/pip-install-9cjmkhn2/holidays/ Complete output (6 lines): usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: setup.py --help [cmd1 cmd2 ...] or: setup.py --help-commands or: setup.py cmd --help

error: invalid command 'bdist_wheel'

(Error follows)

And if I try to run "superset db upgrade" returns error as well:

(superset) alvaro@alvaro-VirtualBox:~$ superset db upgrade Traceback (most recent call last): File "/home/alvaro/superset/lib/python3.8/site-packages/pkg_resources/init.py", line 583, in _build_master ws.require(requires) File "/home/alvaro/superset/lib/python3.8/site-packages/pkg_resources/init.py", line 900, in require needed = self.resolve(parse_requirements(requirements)) File "/home/alvaro/superset/lib/python3.8/site-packages/pkg_resources/init.py", line 791, in resolve raise VersionConflict(dist, req).with_context(dependent_req) pkg_resources.ContextualVersionConflict: (itsdangerous 2.0.1 (/home/alvaro/superset/lib/python3.8/site-packages), Requirement.parse('itsdangerous<2.0,>=0.24'), {'flask'})

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/alvaro/superset/bin/superset", line 6, in from pkg_resources import load_entry_point File "/home/alvaro/superset/lib/python3.8/site-packages/pkg_resources/init.py", line 3252, in def _initialize_master_working_set(): File "/home/alvaro/superset/lib/python3.8/site-packages/pkg_resources/init.py", line 3235, in _call_aside f(*args, **kwargs) File "/home/alvaro/superset/lib/python3.8/site-packages/pkg_resources/init.py", line 3264, in _initialize_master_working_set working_set = WorkingSet._build_master() File "/home/alvaro/superset/lib/python3.8/site-packages/pkg_resources/init.py", line 585, in _build_master return cls._build_from_requirements(requires) File "/home/alvaro/superset/lib/python3.8/site-packages/pkg_resources/init.py", line 598, in _build_from_requirements dists = ws.resolve(reqs, Environment()) File "/home/alvaro/superset/lib/python3.8/site-packages/pkg_resources/init.py", line 786, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'itsdangerous<2.0,>=0.24' distribution was not found and is required by flask

I have tried several solutions but none of them worked for me. I have repeated the process in various clean Ubuntu 20.04 virtual machines but is not possible for me to install Superset.

I attach both errors expecting it helps.

db_init.log install.log

Environment

(please complete the following information):

Checklist

Make sure to follow these steps before submitting your issue - thank you!

etr2460 commented 3 years ago

@AlvaroFFF or @bzmatteo72, we recently released superset 1.3, and wouldn't expect to see this issue anymore with it. Can you confirm if your issue is fixed in superset 1.3? thanks!

AlvaroFFF commented 3 years ago

Hi @etr2460,

Issue is still there. Let me try to provide more information about enviroment. These are the steps I've followed:

Created a new machine on Google Cloud Platform, with following specifications:

Once the instance is up, we start executing commands as mentioned here

sudo apt-get install build-essential libssl-dev libffi-dev python3-dev python3-pip libsasl2-dev libldap2-dev pip install virtualenv

After this command we go slightly "out of the guide" to install python venv:

sudo apt-get install python3.8-venv

And now we can create and activate our virtual enviroment and follow with the installation:

python3 -m venv venv . venv/bin/activate pip install apache-superset

At this point, some errors have appeared in the console while installing superset. Seems like most of them are related with flask version.

Indeed, if we execute superset --version an exception is raised.

I have tried to build a workaround that worked to me, consists basically on installing some flask versions manually:

pip install flask-wtf==0.14.2 pip install flask==1.1.0 pip install werkzeug==0.16.1

Once the ¿dependencies error? seems to be fixed we can continue:

superset db upgrade export FLASK_APP=superset superset fab create-admin superset init superset run -p 8088 --with-threads --reload --debugger

And it works successfully.

I attach the history of commands hoping it could be useful. history.txt

Thank you,

Alvaro

etr2460 commented 3 years ago

Thanks for the details! Seems like we still need to fix some of our version pinning. Maybe @dpgaspar, @villebro, or @john-bodley could help you out here