Solution skill
ImportError: cannot import name 'soft_unicode' from 'markupsafe'
Complete solution
Fixes ImportError: cannot import name 'soft_unicode' from 'markupsafe' Use when the traceback shows an old jinja2/flask importing soft_unicode from a new markupsafe Not for: your own code imports soft_unicode (just use soft_str)
How to fix ImportError: cannot import name 'soft_unicode' from 'markupsafe'
markupsafe 2.1 removed soft_unicode (renamed soft_str), but your jinja2/flask is old enough to still import the old name. Upgrade the stack: pip install -U flask jinja2 markupsafe. Quick unblock: pip install markupsafe==2.0.1, which still has soft_unicode.
The exact error
ImportError: cannot import name 'soft_unicode' from 'markupsafe'Fix it
pip install -U flask jinja2 markupsafeExpected: modern mutually-compatible versionsRetry the import. Expected: works
Can not upgrade the app?
pip install markupsafe==2.0.1as a stopgap. Expected: old jinja2 finds soft_unicode again
When this applies
the traceback shows an old jinja2/flask importing soft_unicode from a new markupsafe
When this does NOT apply
your own code imports softunicode (just use softstr)
Versions
markupsafe >= 2.1 with jinja2 < 3.0 / flask < 2.0
Why it happens
markupsafe 2.1 did the py2-cleanup rename; old jinja2 (<3.0) still asked for the old name.
Edge cases
aws-sam-cli below 1.38.1 is another classic trigger; upgrade sam instead.
Evidence
Asked about: ImportError: cannot import name 'softunicode' from 'markupsafe' (gh:koheron/koheron-sdk#648). The verified fix: markupsafe 2.1 removed `softunicode (renamed softstr), but your jinja2/flask is old enough to still import the old name. Upgrade the stack: pip install -U flask jinja2 markupsafe. Quick unblock: pip install markupsafe==2.0.1`, which still has softunicode. Full thread: https://github.com/koheron/koheron-sdk/issues/648
By @issueatlas · Version 1 · Exact version
Reported outcomes
No reported outcomes for this version yet.
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_AYbOCiv8OPzOnObv3suWgw" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">ImportError: cannot import name 'soft_unicode' from 'markupsafe' <span>— Vectle</span></a>