Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker image for 4.1.1rc1 is missing python dependencies #30989

Closed
3 tasks done
OldrichDlouhy opened this issue Nov 20, 2024 · 3 comments
Closed
3 tasks done

Docker image for 4.1.1rc1 is missing python dependencies #30989

OldrichDlouhy opened this issue Nov 20, 2024 · 3 comments
Assignees
Labels
dependencies:python install:docker Installation - docker container

Comments

@OldrichDlouhy
Copy link

Bug description

Running the docker image for version 4.1.1rc1 fails with ModuleNotFoundError: No module named 'psycopg2'.

Screenshots/recordings

No response

Superset version

4.1.0

Python version

3.10

Node version

16

Browser

Chrome

Additional context

2024-11-20 12:20:31,286:ERROR:superset.app:Failed to create app
 Traceback (most recent call last):
   File "/app/superset/app.py", line 40, in create_app
     app_initializer.init_app()
   File "/app/superset/initialization/__init__.py", line 478, in init_app
     self.setup_db()
   File "/app/superset/initialization/__init__.py", line 640, in setup_db
     pessimistic_connection_handling(db.engine)
   File "/usr/local/lib/python3.10/site-packages/flask_sqlalchemy/__init__.py", line 998, in engine
     return self.get_engine()
   File "/usr/local/lib/python3.10/site-packages/flask_sqlalchemy/__init__.py", line 1017, in get_engine
     return connector.get_engine()
   File "/usr/local/lib/python3.10/site-packages/flask_sqlalchemy/__init__.py", line 594, in get_engine
     self._engine = rv = self._sa.create_engine(sa_url, options)
   File "/usr/local/lib/python3.10/site-packages/flask_sqlalchemy/__init__.py", line 1027, in create_engine
     return sqlalchemy.create_engine(sa_url, **engine_opts)
   File "<string>", line 2, in create_engine
   File "/usr/local/lib/python3.10/site-packages/sqlalchemy/util/deprecations.py", line 375, in warned
     return fn(*args, **kwargs)
   File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/create.py", line 544, in create_engine
     dbapi = dialect_cls.dbapi(**dbapi_args)
   File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/postgresql/psycopg2.py", line 811, in dbapi
     import psycopg2
 ModuleNotFoundError: No module named 'psycopg2'
 Traceback (most recent call last):
   File "/usr/local/bin/flask", line 8, in <module>
 Loaded your LOCAL configuration at [/app/docker/pythonpath_dev/superset_config.py]
     sys.exit(main())
   File "/usr/local/lib/python3.10/site-packages/flask/cli.py", line 1064, in main
     cli.main()
   File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1078, in main
     rv = self.invoke(ctx)
   File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1688, in invoke
     return _process_result(sub_ctx.command.invoke(sub_ctx))
   File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
     return ctx.invoke(self.callback, **ctx.params)
   File "/usr/local/lib/python3.10/site-packages/click/core.py", line 783, in invoke
     return __callback(*args, **kwargs)
   File "/usr/local/lib/python3.10/site-packages/click/decorators.py", line 92, in new_func
     return ctx.invoke(f, obj, *args, **kwargs)
   File "/usr/local/lib/python3.10/site-packages/click/core.py", line 783, in invoke
     return __callback(*args, **kwargs)
   File "/usr/local/lib/python3.10/site-packages/flask/cli.py", line 912, in run_command
     raise e from None
   File "/usr/local/lib/python3.10/site-packages/flask/cli.py", line 898, in run_command
     app = info.load_app()
   File "/usr/local/lib/python3.10/site-packages/flask/cli.py", line 309, in load_app
     app = locate_app(import_name, name)
   File "/usr/local/lib/python3.10/site-packages/flask/cli.py", line 238, in locate_app
     return find_app_by_string(module, app_name)
   File "/usr/local/lib/python3.10/site-packages/flask/cli.py", line 166, in find_app_by_string
     app = attr(*args, **kwargs)
   File "/app/superset/app.py", line 47, in create_app
     raise ex
   File "/app/superset/app.py", line 40, in create_app
     app_initializer.init_app()
   File "/app/superset/initialization/__init__.py", line 478, in init_app
     self.setup_db()
   File "/app/superset/initialization/__init__.py", line 640, in setup_db
     pessimistic_connection_handling(db.engine)
   File "/usr/local/lib/python3.10/site-packages/flask_sqlalchemy/__init__.py", line 998, in engine
     return self.get_engine()
   File "/usr/local/lib/python3.10/site-packages/flask_sqlalchemy/__init__.py", line 1017, in get_engine
     return connector.get_engine()
   File "/usr/local/lib/python3.10/site-packages/flask_sqlalchemy/__init__.py", line 594, in get_engine
     self._engine = rv = self._sa.create_engine(sa_url, options)
   File "/usr/local/lib/python3.10/site-packages/flask_sqlalchemy/__init__.py", line 1027, in create_engine
     return sqlalchemy.create_engine(sa_url, **engine_opts)
   File "<string>", line 2, in create_engine
   File "/usr/local/lib/python3.10/site-packages/sqlalchemy/util/deprecations.py", line 375, in warned
     return fn(*args, **kwargs)
   File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/create.py", line 544, in create_engine
     dbapi = dialect_cls.dbapi(**dbapi_args)
   File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/postgresql/psycopg2.py", line 811, in dbapi
     import psycopg2
 ModuleNotFoundError: No module named 'psycopg2'

Checklist

  • I have searched Superset docs and Slack and didn't find a solution to my problem.
  • I have searched the GitHub issue tracker and didn't find a similar bug report.
  • I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the "additional context" section.
Copy link

dosubot bot commented Nov 20, 2024

The issue you're encountering with the Docker image for Superset version 4.1.1rc1 missing the psycopg2 module is due to changes in the Docker image starting from version 4.1.0. The release's Docker image no longer includes database drivers like psycopg2 by default. This is because the official releases are based on a lean Docker image that does not contain these drivers. You will need to install them yourself.

To resolve this, you can add psycopg2-binary to a requirements-local.txt file in your Docker setup. Here are the steps:

  1. Create a file named ./docker/requirements-local.txt.
  2. Add psycopg2-binary to this file.
  3. If you're using a stock Superset image, start Superset with docker compose -f docker-compose-image-tag.yml up.
  4. If you're using a customized image, rebuild your local image with docker compose build --force-rm and then relaunch Superset with docker compose up.

This should ensure that psycopg2 is installed in your Docker environment [1].

To continue talking to Dosu, mention @dosu.

@dosubot dosubot bot added dependencies:python install:docker Installation - docker container labels Nov 20, 2024
@sadpandajoe
Copy link
Member

Seems to work for me as I'm able to spin the app up just fine. Have you seen this note in the change log: https://github.com/apache/superset/blob/master/RELEASING/release-notes-4-1/README.md#change-to-docker-image-builds?

@sadpandajoe
Copy link
Member

Also going to post this here as this was talked about in the 4.1.0 rc releases: #30631 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies:python install:docker Installation - docker container
Projects
None yet
Development

No branches or pull requests

2 participants