iercan opened a new issue, #33241:
URL: https://github.com/apache/superset/issues/33241
### Bug description
I'm trying testing 5.0.0rc2 while currently using version 4.1.2. We utilize
the official Docker image and install dependencies as the superset user in the
Dockerfile as shown below.
```
USER root
RUN apt update && apt install -y python3-dev default-libmysqlclient-dev
build-essential pkg-config
USER superset
RUN pip install --no-cache-dir mysqlclient
```
My Docker image works with version 4.1.2, but running a DB upgrade on
5.0.0rc2 throws the following error.
```
2025-04-22 10:55:45,212:ERROR:superset.app:Failed to create app
Traceback (most recent call last):
File "/app/.venv/lib/python3.10/site-packages/superset/app.py", line 40,
in create_app
app_initializer.init_app()
File
"/app/.venv/lib/python3.10/site-packages/superset/initialization/__init__.py",
line 465, in init_app
self.setup_db()
File
"/app/.venv/lib/python3.10/site-packages/superset/initialization/__init__.py",
line 661, in setup_db
pessimistic_connection_handling(db.engine)
File
"/app/.venv/lib/python3.10/site-packages/flask_sqlalchemy/__init__.py", line
998, in engine
return self.get_engine()
File
"/app/.venv/lib/python3.10/site-packages/flask_sqlalchemy/__init__.py", line
1017, in get_engine
return connector.get_engine()
File
"/app/.venv/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
"/app/.venv/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
"/app/.venv/lib/python3.10/site-packages/sqlalchemy/util/deprecations.py", line
375, in warned
return fn(*args, **kwargs)
File
"/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/create.py", line
544, in create_engine
dbapi = dialect_cls.dbapi(**dbapi_args)
File
"/app/.venv/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py",
line 150, in dbapi
return __import__("MySQLdb")
ModuleNotFoundError: No module named 'MySQLdb'
Traceback (most recent call last):
File "/app/.venv/bin/superset", line 10, in <module>
sys.exit(superset())
File "/app/.venv/lib/python3.10/site-packages/click/core.py", line 1157,
in __call__
return self.main(*args, **kwargs)
File "/app/.venv/lib/python3.10/site-packages/click/core.py", line 1078,
in main
rv = self.invoke(ctx)
File "/app/.venv/lib/python3.10/site-packages/click/core.py", line 1685,
in invoke
super().invoke(ctx)
File "/app/.venv/lib/python3.10/site-packages/click/core.py", line 1434,
in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/app/.venv/lib/python3.10/site-packages/click/core.py", line 783, in
invoke
return __callback(*args, **kwargs)
File "/app/.venv/lib/python3.10/site-packages/click/decorators.py", line
33, in new_func
return f(get_current_context(), *args, **kwargs)
File "/app/.venv/lib/python3.10/site-packages/flask/cli.py", line 355, in
decorator
app = __ctx.ensure_object(ScriptInfo).load_app()
File "/app/.venv/lib/python3.10/site-packages/flask/cli.py", line 309, in
load_app
app = locate_app(import_name, name)
File "/app/.venv/lib/python3.10/site-packages/flask/cli.py", line 238, in
locate_app
return find_app_by_string(module, app_name)
File "/app/.venv/lib/python3.10/site-packages/flask/cli.py", line 166, in
find_app_by_string
app = attr(*args, **kwargs)
File "/app/.venv/lib/python3.10/site-packages/superset/app.py", line 40,
in create_app
app_initializer.init_app()
File
"/app/.venv/lib/python3.10/site-packages/superset/initialization/__init__.py",
line 465, in init_app
self.setup_db()
File
"/app/.venv/lib/python3.10/site-packages/superset/initialization/__init__.py",
line 661, in setup_db
pessimistic_connection_handling(db.engine)
File
"/app/.venv/lib/python3.10/site-packages/flask_sqlalchemy/__init__.py", line
998, in engine
return self.get_engine()
File
"/app/.venv/lib/python3.10/site-packages/flask_sqlalchemy/__init__.py", line
1017, in get_engine
return connector.get_engine()
File
"/app/.venv/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
"/app/.venv/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
"/app/.venv/lib/python3.10/site-packages/sqlalchemy/util/deprecations.py", line
375, in warned
return fn(*args, **kwargs)
File
"/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/create.py", line
544, in create_engine
dbapi = dialect_cls.dbapi(**dbapi_args)
File
"/app/.venv/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py",
line 150, in dbapi
return __import__("MySQLdb")
ModuleNotFoundError: No module named 'MySQLdb'
```
Although mysqlclient seem installed with `pip freeze`, the superset user
cannot access it.
I noticed the repository now uses uv. When I tried installing it via uv, a
permission error occurred. Installing it as the root user resolved the issue.
@mistercrunch, I was advised to tag you since you migrated the image to uv.
### Screenshots/recordings
_No response_
### Superset version
master / latest-dev
### Python version
3.10
### Node version
16
### Browser
Chrome
### Additional context
_No response_
### Checklist
- [x] I have searched Superset docs and Slack and didn't find a solution to
my problem.
- [x] I have searched the GitHub issue tracker and didn't find a similar bug
report.
- [x] 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.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]