关于为什么我会收到此错误的任何想法?
我的项目运行良好。我将它复制到外部驱动器和我的笔记本电脑上,以便在路上工作;它工作正常。我将它复制回我的桌面并遇到大量无效解释器等问题,所以我创建了一个新项目并只复制了脚本,创建了一个新的 requirements.txt 并安装了所有包,但是当我运行它时,我得到这个错误:
Traceback (most recent call last):
File "E:\Dev\spot_new\flask_blog\run.py", line 1, in <module>
from flaskblog import app
File "E:\Dev\spot_new\flask_blog\flaskblog__init__.py", line 3, in <module>
from flask_bcrypt import Bcrypt
File "E:\Dev\spot_new\venv\lib\site-packages\flask_bcrypt.py", line 21, in <module>
from werkzeug.security import safe_str_cmp
ImportError: cannot import name 'safe_str_cmp' from 'werkzeug.security' (E:\Dev\spot_new\venv\lib\site-packages\werkzeug\security.py)
我试过卸载 Python、Anaconda、PyCharm,删除我能找到的每一个 reg 键和环境变量,看起来像 pythonic,从头开始重新安装但仍然没有骰子。
原文由 prosody 发布,翻译遵循 CC BY-SA 4.0 许可协议
Werkzeug 今天发布了 v2.1.0 ,删除了
werkzeug.security.safe_str_cmp
。您可以通过在 requirements.txt 文件(或类似文件)中固定
Werkzeug~=2.0.0
来解决此问题。在那之后你很可能还会有一个与 jinja 包相关的 AttributeError,所以如果你有它,也运行: