How to Fix: Cannot import safe_str_cmp from Werkzeug

Hello! This page explains how to fix "ImportError: cannot import name 'safe_str_cmp' from werkzeug.security" caused by the latest Werkzeug version - v2.1.0 (at the time this article is written).

For newcomers, Werkzeug, the core dependency of Flask, is a comprehensive WSGI web application library. The mentioned error is bumped when the used version of Werkzeug is v2.1.0 (or greater).


✨ Werkzeug Update History

πŸ‘‰ v2.0.0

pbkdf2_hex, pbkdf2_bin, and safe_str_cmp are deprecated. hashlib and hmac provide equivalents.

πŸ‘‰ v2.1.0

Remove the pbkdf2_hex, pbkdf2_bin, and safe_str_cmp functions. Use equivalents in hashlib and hmac modules instead.

✨ How to Fix

Freeze the Werkzeug Β to the latest stable version prior to v2.1.0. The recommended version is Werkzeug==2.0.3.


✨Sample Project

To see this hotfix in action, feel free to check this sample project saved on Github (MIT License)

​Flask Datta Able - open-source Flask Starter generated by AppSeed
Flask Datta Able - Open-Source Seed Project

Thanks for reading! For more resources, feel free to access: