-
Notifications
You must be signed in to change notification settings - Fork 14k
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
ModuleNotFoundError: No module named 'sqlglot' error across many containers #26997
Comments
+1 having the same exact issue. |
|
Same |
@michael-s-molina is there any version you would recommend back rolling superset so that arm64 machines are able to build superset fully in docker? FWIW, we are all building superset in development and not production |
Same goes for me and I have done exactly the same steps. Trying to push this in my company but is hard when the local thing just doesn't works ... |
I have the exact same issue after trying everything to solve the compatibility error with M1 |
same issue on Amazon x86-64 EC2 instance with Ubuntu
|
Pinging @betodealmeida and @john-bodley since it sounds related to their recent consolidation efforts. |
+1, is there any rollback branch or commit we can use for now? |
I resolved the issues by checking out the latest stable release My system:
Steps git clone https://github.com/apache/superset.git
git checkout tags/3.1.0
docker compose up If all runs smoothly docker compose up -d |
@SbstnErhrdt Thanks for your reply.
|
Same problem here |
not resolved yet ! what [SbstnErhrdt] said does not work for me. |
Are we looking for any update soon on this. |
Still Issue Persist. Superset team really need to sort it out, as everyone clone's from master only. @SbstnErhrdt tags/3.1.0 didn't work for me. Distributor ID: Ubuntu |
@yashagv @andrekef @vikramwalia my system is
|
The config.json file issue with WebSocket is in the master also. It's not just related to tags/3.1.0. @rusackas |
Thanks @akshayjain3450 All containers are up, but "http://localhost:8088/superset/welcome/" is continuously loading. Are you able to run, Can you suggest something? |
I found one more error with postgres container where it is looking for a test table which does not exist. My two containers are down even after the module fix:
Need help to make this working. |
I'm not familiar with how we're building the Docker images, nor with Snarf — does it just mirror an image from Dockerhub? I was able to repro, and the solution proposed by @akshayjain3450 worked for me, so that seems like an easy workaround for now. @rusackas do you know how to build and publish a new docker image? |
I think @mistercrunch has the most relevant docker-fu here. Regarding Scarf (Gateway), if that's what you mean, it's just a proxy, more so than a mirror. It just passes the request through directly to dockerhub and clicks a counter along the way ;) |
This should help at least with the confusion around having to change image targets for local arm64 development work on newer Apple silicon -> #27055 |
Still running into issues, it is not even getting to a point where the containers are created. I am following documentation for a 2 min setup. I am going to test this out by creating an .env file at the location below and testing. This is x86 / Ubuntu 22.04. docker compose up |
the only error I am facing is mysqlglot error in a loop.
…________________________________
From: Maxime Beauchemin ***@***.***>
Sent: 13 February 2024 02:29
To: apache/superset ***@***.***>
Cc: Rajdeep Sarkar ***@***.***>; Comment ***@***.***>
Subject: Re: [apache/superset] ModuleNotFoundError: No module named 'sqlglot' error across many containers (Issue #26997)
Screenshot.2024-02-12.at.6.21.56.PM.png (view on web)<https://github.com/apache/superset/assets/487433/21c8b8bb-80e9-4ae2-b0fe-40ad0de2383c>
Can't recreate, can someone who had the issue confirmed it's fixed by now?
I tried:
docker-compose pull
docker-compose up
Also
docker compose -f docker-compose-non-dev.yml pull
docker compose -f docker-compose-non-dev.yml up
And also
git checkout 3.0.0
TAG=3.0.0 docker compose -f docker-compose-non-dev.yml pull
TAG=3.0.0 docker compose -f docker-compose-non-dev.yml up
All seemed to work on a recent Macbook M2. I hit localhost:8088 and things were snappy
—
Reply to this email directly, view it on GitHub<#26997 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/A7QFMXN3L2TXL5FZWQ3VQJTYTLFY5AVCNFSM6AAAAABCXDMIUOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNBQGI4TMMZUGI>.
You are receiving this because you commented.Message ID: ***@***.***>
|
@rajdeepUWE follow the answer from @akshayjain3450 about creating a requirements-local with the sqlglot. |
I tried this. Let me get it, i need to make a .txt file name it requirements-local and write sqlglot==20.8.0 and save it in .docker/ or in the Docker directory inside superset (superset/Docker/)? I tried both, I am facing the same issue |
mmmh, wondering why I can't recreate here on my local... Are you all on latest sqlglot is properly referenced here -> https://github.com/apache/superset/blob/master/requirements/base.txt#L345 There's a bit of a jumparoo here where requirements files point to one another, the chaing goes requirements/local.txt -> requirements/development.txt -> requirements/base.txt (where sqlglot is referenced) |
Wondering if docker caching could be an issue here, where say base.txt changed, but the layer is cached because doesn't think the file has changed. But from my understanding of how docker cache works, if any of the mounted file changed, it's part of the cache key and will invalidate the cache. |
Did we have this dependency in the last stable release 3.1.0 @mistercrunch? Because, after I checkout to that branch I face error building the image. So we have a use there but this dependency I could not find in branch 3.1.0. Can you tell me what I am missing here? How is the public docker image released working and not our custom images without any change? |
I don't see any reference of
|
I am getting the same error. Does anyone resolve the error? |
UPDATE: What worked for me and spinned up superset again is creating a
were commented out in config.py by default, which I don't understand why
|
I faced the same issue while running docker compose up -d |
Hi, You might want to install it yourself (by editing to This dependency was cherry picked and added to master, how ever you all still using outdated images. (For example me who use based on 3.1.0 multiplatform docker image.) +sqlglot==20.8.0 Cheers |
Thank you so much.
That also worked for me.
Thank you.
…On Fri, Feb 16, 2024 at 5:48 AM Shivangini-G ***@***.***> wrote:
I faced the same issue while running docker compose up -d
So instead I did docker compose -f docker-compose-non-dev.yml up -d
and it worked for me.
—
Reply to this email directly, view it on GitHub
<#26997 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BDCEJ7YXOWHH2RGJ4FQRPNLYT3XJXAVCNFSM6AAAAABCXDMIUOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNBXG44TMNBRGI>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
This solves only for the initial install, however the moment you change anything. Example , pip install snowflake-sqlalchemy Error: While importing 'superset.app', an ImportError was raised: |
Digging a bit into this, I understand some things, but I'm not 100% clear on how this is setting or exactly how things are supposed to work here. But few things I know docker-compose.yml has this ->
Which points to Pointing to With this PR -> #27146 we'll be having multi-platform build for master, so that would make things work better. Though I'm not sure what's a normal setup for docker-compose here and how the repo is supposed to line up with the images. My best bet is recent master should work on top of a recent image build off of master (as in the master-dev tag), but that seems fragile, there's no guarantee that any particular SHA should match the latest image. I guess if you have a freshly rebases branch and we have a fresh image, things should line up most of the time. |
I see several people here are running the command In the install docs we tell people to run I wonder if we renamed the two files like this:
Would it result in a better experience for new users, because then the default is a stable image? |
Interesting question @sfirke - might be a good listserv or town hall question. As a contributor, I prefer to run "dev mode" so the default is sensible. You might be right that a "stable" version is the more sensible default for docker compose, but I'm not certain of it... the current behavior probably helps us find bugs on master a lot faster ;) |
Quite true! You can tell when master breaks as people come flooding into Slack reporting the same problem. But I don't think using new users as test subjects is probably good for the long-term health of the project. I expect for every person who reports a GitHub issue about broken master branch, many more give up silently and say Superset is not ready for production. I will put it on the town hall list, good idea. |
My expectation (and I think the common use) would be for docker-compose to build off the current branch using the local docker file while mounting the local files so that development can be done. Changing the python files in the repo should change the app, and it assumes youre running 'npm run dev' to build the JS assets. Now for the other "non-dev"use case you'd build the actual files, no mounts, respecting the current dockerfile. So all of this being deterministic and respecting the local branch/dockerfile, no divergence from previous layers allowed as it is the case now. |
In terms of renaming the files. Here's what I would suggest:
|
It sounds like both of those require git and target the master branch/latest commit. Yes we need to meet developer needs there. But IMO to make it as easy as possible to deploy Superset this way for new users, there should be a docker compose workflow that does not require cloning the repo and points at a stable release. That is how Airflow instructs people to deploy with docker compose, their steps are:
|
From my understanding docker-compose shouldn't be used to productionize applications like Superset and exists to support developer workflows primarily. Helm is the tech that would provide more of the guarantees needed there. Helm should absolutely point to |
Yes, I tried your method and it really worked for me also. |
Thanks everybody. Closing this one for now as we continue validating ways to improve our docker compose setup. |
Quick note that we met with the devx sub-team and I said I'd pick up doing a set of improvements for the docker-compose workflows addressing the core issues here. Main idea is referencing the branch's Dockerfile as opposed to a baked image like we do now. |
Bug description
Working on a 2023 Macbook Air M2
I followed the steps per wiki here https://superset.apache.org/docs/installation/installing-superset-using-docker-compose/ (which I believe needs updating) and I am unable to have stable build for many containers under the main superset container.
http://localhost:8088/
. Page is blank.This error above is looping endlessly
How to reproduce the bug
open docker-compose.yml
platform: linux/x86_64/v8
under each superset container - Please include in your wiki for arm64 users, as this will save folks a lot of time.Eg
docker compose up --build -d
ModuleNotFoundError
Screenshots/recordings
Superset version
master / latest-dev
Python version
3.9
Node version
18 or greater
Browser
Chrome
Additional context
No response
Checklist
The text was updated successfully, but these errors were encountered: