当我运行 Flask 时,它显示错误:ModuleNotFoundError: No module named 'werkzeug.contrib'。谁能帮我这个?

Har*_*hit 10 python werkzeug flask flask-session

我得到的确切错误是:

flask.cli.NoAppException: While importing "application", an ImportError was raised:Traceback      (most recent call last):
File "/home/harshit/.local/lib/python3.6/site-packages/flask/cli.py", line 240, in     locate_app
__import__(module_name)
File "/home/harshit/Documents/project1/application.py", line 18, in <module>
Session(app)
File "/home/harshit/.local/lib/python3.6/site-packages/flask_session/__init__.py", line 54,    in __init__
self.init_app(app)
File "/home/harshit/.local/lib/python3.6/site-packages/flask_session/__init__.py", line 61, in init_app
app.session_interface = self._get_interface(app)
File "/home/harshit/.local/lib/python3.6/site-packages/flask_session/__init__.py", line 93, in _get_interface
config['SESSION_USE_SIGNER'], config['SESSION_PERMANENT'])
File "/home/harshit/.local/lib/python3.6/site-packages/flask_session/sessions.py", line 313, in __init__
from werkzeug.contrib.cache import FileSystemCache
ModuleNotFoundError: No module named 'werkzeug.contrib'
Run Code Online (Sandbox Code Playgroud)

我正在尝试从 Flask 导入会话

小智 17

Werkzeug 1.0.0 删除了弃用的代码,包括所有werkzeug.contrib. 您应该为新项目使用替代库。werkzeug.contrib.session被提取到secure-cookie


如果您正在使用的现有项目需要来自 的内容contrib,则需要降级到 Werkzeug<1:

pip3 install Werkzeug<1
Run Code Online (Sandbox Code Playgroud)


Ste*_*lke 6

将版本降级到 0.16.0 或替换werkzeug.contrib.cachecachelib.

我强烈建议升级该软件包。已弃用的模块werkzeug.contrib很容易替换!

安装cachelib并替换来自以下位置的所有导入:

from werkzeug.contrib.cache import FileSystemCache
Run Code Online (Sandbox Code Playgroud)

from cachelib import FileSystemCache
Run Code Online (Sandbox Code Playgroud)


Asa*_*han 5

您需要将werkzeug版本从1.0.0降级到0.16.0

这为我解决了这个问题。

只需在您的项目中运行以下命令

python3 -m pip uninstall werkzeug

进而

python3 -m pip install werkzeug==0.16.0