SendGrid
No module named sendgrid_backend means django-sendgrid-v5 isn't installed in the active environment. Install with pip and verify the EMAIL_BACKEND path.
Updated Jun 26, 2026
The short answer
ModuleNotFoundError: No module named "sendgrid_backend" is a Python import error raised when Django's EMAIL_BACKEND points to "sendgrid_backend.SendgridBackend" but the django-sendgrid-v5 package providing that module is not installed in the active environment. Fix it by installing the package with pip install django-sendgrid-v5 into the same interpreter/virtualenv Django runs in.
Django raises ModuleNotFoundError: No module named 'sendgrid_backend' (a subclass of ImportError) when it tries to load the email backend named in your EMAIL_BACKEND setting and cannot find the sendgrid_backend package on the Python path. The sendgrid_backend module is provided by the third-party package django-sendgrid-v5 — it is not part of Django or the official sendgrid SDK.
Your settings reference the backend, e.g.:
EMAIL_BACKEND = "sendgrid_backend.SendgridBackend"
Django imports that dotted path at send time, so the error appears whenever the package backing it isn't importable. Common reasons:
django-sendgrid-v5 was never pip installed, or it's missing from requirements.txt so it wasn't deployed.sendgrid (the official SDK) does not provide sendgrid_backend; that module only comes from django-sendgrid-v5.Note the class name is SendgridBackend (lowercase "g"), per the project README — but a class-name typo produces a different error (ImportError: ... does not define a SendGridBackend attribute), not "No module named".
pip install django-sendgrid-v5
python -c "import sendgrid_backend; print(sendgrid_backend.__file__)"
If this raises the same error, your pip and python point at different environments. Use python -m pip install django-sendgrid-v5 to install into the interpreter you're invoking.
settings.py (note the casing and the # Python comment):import osEMAIL_BACKEND = "sendgrid_backend.SendgridBackend"SENDGRID_API_KEY = os.environ["SENDGRID_API_KEY"] # or set directly
requirements.txt so containers and CI install it too:django-sendgrid-v5
Then rebuild/redeploy and restart the app server (gunicorn/uwsgi/runserver) so the new package is loaded.
The current release supports Python 3.9–3.13 (PyPI). If you're on an unsupported Python, upgrade or pin a compatible version.
References
FAQ
No. The official sendgrid SDK provides the sendgrid module for calling SendGrid's API directly. The sendgrid_backend module is a separate Django email backend supplied only by the django-sendgrid-v5 package. Installing sendgrid will not resolve this error.
One API, every provider
Courier connects to your email, SMS, and push providers, handles retries and failover, and surfaces delivery errors in plain language.
Last reviewed Jun 26, 2026. Courier is not affiliated with third-party providers; error behavior may vary by implementation.
© 2026 Courier. All rights reserved.