Hariprasath-0018 commented on issue #37560:
URL: https://github.com/apache/superset/issues/37560#issuecomment-3822644151

   Hi Dosu,
   
   I updated my Dockerfile, rebuilt my Docker image, and restarted Superset.
   However, when I tried to verify the driver installation by running:
   
   python -c "import pyodbc; print(pyodbc.drivers())"
   
   inside the container, I encountered the following error:
   
   Traceback (most recent call last):
     File "<string>", line 1, in <module>
   ModuleNotFoundError: No module named 'pyodbc'
   
   It seems that the pyodbc module is not installed inside the container.
   Could you please advise on how to resolve this issue?
   
   Thanks,
   
   Hariprasath N
   
   On Fri, 30 Jan 2026 at 12:08, dosubot[bot] ***@***.***> wrote:
   
   > *dosubot[bot]* left a comment (apache/superset#37560)
   > <https://github.com/apache/superset/issues/37560#issuecomment-3822118707>
   >
   > The error means Superset can't find or load the required SQL Server driver
   > in your environment. This is common in recent Docker images, where drivers
   > like pymssql or pyodbc are no longer included by default. Even if you
   > installed pymssql, it may not work reliably on modern Python or Debian
   > images due to compatibility issues with SQLAlchemy 2.x and Python ≥3.10.
   >
   > The recommended solution is to switch to the pyodbc driver and ensure
   > both the Microsoft ODBC Driver 18 and the pyodbc Python package are
   > installed in your Superset image. Here’s how you can do it:
   >
   >    1.
   >
   >    *Update your Dockerfile* (for Debian 12/bookworm):
   >
   >    FROM apache/superset:latest
   >    USER root
   >    RUN apt-get update && \
   >        apt-get install -y build-essential libpq-dev unixodbc-dev curl 
gnupg2 && \
   >        curl -sSL https://packages.microsoft.com/keys/microsoft.asc | gpg 
--dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg && \
   >        curl -sSL https://packages.microsoft.com/config/debian/12/prod.list 
-o /etc/apt/sources.list.d/mssql-release.list && \
   >        apt-get update && \
   >        ACCEPT_EULA=Y apt-get install -y msodbcsql18 && \
   >        pip install --no-cache-dir pyodbc && \
   >        apt-get clean
   >    USER superset
   >
   >    Reference
   >    
<https://github.com/apache/superset/issues/36183#issuecomment-3552040461>
   >    2.
   >
   >    *Rebuild your Docker image and restart Superset*.
   >    3.
   >
   >    *Use the correct SQLAlchemy connection string* for SQL Server with
   >    pyodbc, making sure the ODBC string is URL-encoded once (not
   >    double-encoded):
   >
   >    
mssql+pyodbc:///?odbc_connect=Driver%3D%7BODBC+Driver+18+for+SQL+Server%7D%3BServer%3D<your_server>%3BDatabase%3D<your_db>%3BUid%3D<your_user>%3BPwd%3D<your_password>%3BEncrypt%3Dyes%3BTrustServerCertificate%3Dno%3BConnection%20Timeout%3D30%3B
   >
   >    Reference
   >    
<https://github.com/apache/superset/discussions/33957#discussioncomment-13640505>
   >    4.
   >
   >    *Verify driver installation* by running python -c "import pyodbc;
   >    print(pyodbc.drivers())" inside your container. You should see ODBC
   >    Driver 18 for SQL Server in the output.
   >
   > If you still have issues, please share your exact connection string and
   > clarify if you’re running Superset in Docker, Kubernetes, or another
   > environment. Also, check the Superset logs for any additional stacktrace
   > details.
   >
   > Let me know if you need a sample Dockerfile for Ubuntu 22.04 or further
   > troubleshooting steps!
   >
   > *To reply, just mention @dosu <https://go.dosu.dev/dosubot>.*
   > ------------------------------
   >
   > How did I do? Good
   > 
<https://app.dosu.dev/response-feedback/38ba085b-3200-4cd1-9e1f-ebcb2bc1e556?feedback_type=great_response>
   > | Irrelevant
   > 
<https://app.dosu.dev/response-feedback/38ba085b-3200-4cd1-9e1f-ebcb2bc1e556?feedback_type=irrelevant_answer>
   > | Incorrect
   > 
<https://app.dosu.dev/response-feedback/38ba085b-3200-4cd1-9e1f-ebcb2bc1e556?feedback_type=incorrect_sources>
   > | Verbose
   > 
<https://app.dosu.dev/response-feedback/38ba085b-3200-4cd1-9e1f-ebcb2bc1e556?feedback_type=too_verbose>
   > | Hallucination
   > 
<https://app.dosu.dev/response-feedback/38ba085b-3200-4cd1-9e1f-ebcb2bc1e556?feedback_type=hallucination>
   > | Report 🐛
   > 
<https://app.dosu.dev/response-feedback/38ba085b-3200-4cd1-9e1f-ebcb2bc1e556?feedback_type=bug_report>
   > | Other
   > 
<https://app.dosu.dev/response-feedback/38ba085b-3200-4cd1-9e1f-ebcb2bc1e556?feedback_type=other>
   >
   > [image: Chat with Dosu]
   > 
<https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=github>
   >  [image: Open in Cursor]
   > 
<https://cursor.com/link/prompt?text=The%20error%20means%20Superset%20can%27t%20find%20or%20load%20the%20required%20SQL%20Server%20driver%20in%20your%20environment.%20This%20is%20common%20in%20recent%20Docker%20images%2C%20where%20drivers%20like%20%60pymssql%60%20or%20%60pyodbc%60%20are%20no%20longer%20included%20by%20default.%20Even%20if%20you%20installed%20%60pymssql%60%2C%20it%20may%20not%20work%20reliably%20on%20modern%20Python%20or%20Debian%20images%20due%20to%20compatibility%20issues%20with%20SQLAlchemy%202.x%20and%20Python%20%E2%89%A53.10.%20%0A%0AThe%20recommended%20solution%20is%20to%20switch%20to%20the%20%60pyodbc%60%20driver%20and%20ensure%20both%20the%20Microsoft%20ODBC%20Driver%2018%20and%20the%20%60pyodbc%60%20Python%20package%20are%20installed%20in%20your%20Superset%20image.%20Here%E2%80%99s%20how%20you%20can%20do%20it%3A%0A%0A1.%20%2A%2AUpdate%20your%20Dockerfile%2A%2A%20%28for%20Debian%2012/bookworm%29%3A%0A%0A%20%20%20%60%60%60dockerfile%0A%20%20%20FROM%20apach
 
e/superset%3Alatest%0A%0A%20%20%20USER%20root%0A%0A%20%20%20RUN%20apt-get%20update%20%26%26%20%5C%0A%20%20%20%20%20%20%20apt-get%20install%20-y%20build-essential%20libpq-dev%20unixodbc-dev%20curl%20gnupg2%20%26%26%20%5C%0A%20%20%20%20%20%20%20curl%20-sSL%20https%3A//packages.microsoft.com/keys/microsoft.asc%20%7C%20gpg%20--dearmor%20%3E%20/etc/apt/trusted.gpg.d/microsoft.gpg%20%26%26%20%5C%0A%20%20%20%20%20%20%20curl%20-sSL%20https%3A//packages.microsoft.com/config/debian/12/prod.list%20-o%20/etc/apt/sources.list.d/mssql-release.list%20%26%26%20%5C%0A%20%20%20%20%20%20%20apt-get%20update%20%26%26%20%5C%0A%20%20%20%20%20%20%20ACCEPT_EULA%3DY%20apt-get%20install%20-y%20msodbcsql18%20%26%26%20%5C%0A%20%20%20%20%20%20%20pip%20install%20--no-cache-dir%20pyodbc%20%26%26%20%5C%0A%20%20%20%20%20%20%20apt-get%20clean%0A%0A%20%20%20USER%20superset%0A%20%20%20%60%60%60%0A%20%20%20%5BReference%5D%28https%3A//github.com/apache/superset/issues/36183%23issuecomment-3552040461%29%0A%0A2.%20%2A%2ARe
 
build%20your%20Docker%20image%20and%20restart%20Superset%2A%2A.%0A%0A3.%20%2A%2AUse%20the%20correct%20SQLAlchemy%20connection%20string%2A%2A%20for%20SQL%20Server%20with%20pyodbc%2C%20making%20sure%20the%20ODBC%20string%20is%20URL-encoded%20once%20%28not%20double-encoded%29%3A%0A%0A%20%20%20%60%60%60%0A%20%20%20mssql%2Bpyodbc%3A///%3Fodbc_connect%3DDriver%253D%257BODBC%2BDriver%2B18%2Bfor%2BSQL%2BServer%257D%253BServer%253D%3Cyour_server%3E%253BDatabase%253D%3Cyour_db%3E%253BUid%253D%3Cyour_user%3E%253BPwd%253D%3Cyour_password%3E%253BEncrypt%253Dyes%253BTrustServerCertificate%253Dno%253BConnection%2520Timeout%253D30%253B%0A%20%20%20%60%60%60%0A%20%20%20%5BReference%5D%28https%3A//github.com/apache/superset/discussions/33957%23discussioncomment-13640505%29%0A%0A4.%20%2A%2AVerify%20driver%20installation%2A%2A%20by%20running%20%60python%20-c%20%22import%20pyodbc%3B%20print%28pyodbc.drivers%28%29%29%22%60%20inside%20your%20container.%20You%20should%20see%20%60ODBC%20Driver%2018%20for%20S
 
QL%20Server%60%20in%20the%20output.%0A%0AIf%20you%20still%20have%20issues%2C%20please%20share%20your%20exact%20connection%20string%20and%20clarify%20if%20you%E2%80%99re%20running%20Superset%20in%20Docker%2C%20Kubernetes%2C%20or%20another%20environment.%20Also%2C%20check%20the%20Superset%20logs%20for%20any%20additional%20stacktrace%20details.%0A%0ALet%20me%20know%20if%20you%20need%20a%20sample%20Dockerfile%20for%20Ubuntu%2022.04%20or%20further%20troubleshooting%20steps%21>
   >  [image: Join Discord] <https://go.dosu.dev/discord-bot> [image: Share on
   > X]
   > 
<https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/superset/issues/37560>
   >
   > —
   > Reply to this email directly, view it on GitHub
   > <https://github.com/apache/superset/issues/37560#issuecomment-3822118707>,
   > or unsubscribe
   > 
<https://github.com/notifications/unsubscribe-auth/BCNYORT4WILKJ6ADSBVYX7T4JL34VAVCNFSM6AAAAACTMZQOACVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTQMRSGEYTQNZQG4>
   > .
   > You are receiving this because you authored the thread.Message ID:
   > ***@***.***>
   >
   


-- 
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]

Reply via email to