dosubot[bot] commented on issue #33241:
URL: https://github.com/apache/superset/issues/33241#issuecomment-2830219121
<!-- Answer -->
To resolve the "No module named 'MySQLdb'" error when upgrading to Superset
version 5.0.0rc2 using the official Docker image, you can follow these steps:
1. **Create a `requirements-local.txt` file** in the Docker directory:
```bash
touch ./docker/requirements-local.txt
```
2. **Add `mysqlclient` to the file**:
```bash
echo "mysqlclient" >> ./docker/requirements-local.txt
```
3. **Launch Superset** with the appropriate Docker Compose file:
- If you are using a stock (non-customized) Superset image, run:
```bash
docker compose -f docker-compose-non-dev.yml up
```
4. **For a customized Docker image**, create a custom Dockerfile that
includes the necessary build dependencies before installing the `mysqlclient`
package. This is important because starting from Superset version 4.1.0,
database drivers were removed from the base Docker image to create a leaner
image.
5. **Rebuild your local image** with the new driver and dependencies
included:
```bash
docker compose build --force-rm
```
After rebuilding, relaunch Superset by running:
```bash
docker compose up
```
6. **Verify the installation** by entering the running container:
```bash
docker exec -it <container_name> bash
```
Then run `pip freeze` to check that the `mysqlclient` package is listed.
Additionally, the use of `uv` for package installation in the Superset
Docker image can cause permission issues. If you encounter a 'uv: command not
found' error, you can modify the installation script to check for the presence
of 'uv' and use 'pip' if 'uv' is not available. Here's a snippet to handle this:
```bash
if command -v uv > /dev/null 2>&1; then
uv pip install --no-cache-dir -r "${REQUIREMENTS_LOCAL}"
else
pip install --no-cache-dir -r "${REQUIREMENTS_LOCAL}"
fi
```
These steps should help ensure that the `mysqlclient` package is installed
and accessible by the Superset user within the Docker environment
<sup>[[1]](https://github.com/apache/superset/discussions/31432)</sup><sup>[[2]](https://github.com/apache/superset/issues/32733)</sup>.
<!-- Dosu Comment Footer -->
*To continue talking to [Dosu](https://dosu.dev), mention @dosu.*
---
<sup>Help Dosu learn! Give it feedback: [Great
Response](https://app.dosu.dev/response-feedback/8c328c8f-0ce5-4140-8fb9-da4aeb8edc8b?feedback_type=great_response)
| [Irrelevant
Answer](https://app.dosu.dev/response-feedback/8c328c8f-0ce5-4140-8fb9-da4aeb8edc8b?feedback_type=irrelevant_answer)
| [Incorrect
Sources](https://app.dosu.dev/response-feedback/8c328c8f-0ce5-4140-8fb9-da4aeb8edc8b?feedback_type=incorrect_sources)
| [Too
Verbose](https://app.dosu.dev/response-feedback/8c328c8f-0ce5-4140-8fb9-da4aeb8edc8b?feedback_type=too_verbose)
|
[Hallucination](https://app.dosu.dev/response-feedback/8c328c8f-0ce5-4140-8fb9-da4aeb8edc8b?feedback_type=hallucination)
| [Bug
Report](https://app.dosu.dev/response-feedback/8c328c8f-0ce5-4140-8fb9-da4aeb8edc8b?feedback_type=bug_report)
|
[Other](https://app.dosu.dev/response-feedback/8c328c8f-0ce5-4140-8fb9-da4aeb8edc8b?feedback_type=other)</sup>
--
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]