Install & Compatibility
Where this runs
tested against v1.5 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.000s · 66.3MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 3.4s · import 0.000s · 67MB
65MB installed
● package 65MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
django
✓ from mjml import django
✗ from django_mjml import mjml
Basic setup: add 'django_mjml' to INSTALLED_APPS, configure backend, and use the mjml template tag.
# settings.py
INSTALLED_APPS = [
...
'django_mjml',
]
MJML_BACKEND_MODE = 'cmd' # or 'http' or 'tcp'
MJML_EXEC_CMD = 'mjml' # local node mjml command
# In your template:
{% load mjml %}
{% mjml %}
<mjml>
<mj-body>
<mj-section>
<mj-column>
<mj-text>Hello {{ name }}!</mj-text>
</mj-column>
</mj-section>
</mj-body>
</mjml>
{% endmjml %}
Upgrade
Version history
1.5latest on PyPI · released Dec 7, 2025
Audit
Dependencies
requestsoptionalUsed for HTTP API mode to send MJML rendering requests to a server