【问题标题】:When I do Flask run, it shows error : ModuleNotFoundError: No module named 'werkzeug.contrib'. Can anyone help me with this?当我运行 Flask 时,它显示错误:ModuleNotFoundError: No module named 'werkzeug.contrib'。谁能帮我这个?
【发布时间】:2020-06-22 17:38:37
【问题描述】:

我得到的确切错误是:

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'

我正在尝试从 Flask 导入会话

【问题讨论】:

    标签: python flask werkzeug flask-session


    【解决方案1】:

    如果您仍需要来自 werkzeug.contrib 的已弃用代码,您可以将 Werkzeug 版本降级到 1 以下。

    pip install Werkzeug<1
    

    【讨论】:

      【解决方案2】:

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


      如果您正在使用的现有项目需要 contrib 中的某些内容,您需要降级到 Werkzeug

      pip3 install Werkzeug<1
      

      【讨论】:

      • 如果这不起作用,请在 "" pip install "werkzeug&lt;1" 之间尝试
      【解决方案3】:

      对于 Python 3.8

      python3 -m pip uninstall werkzeug
      python3 -m pip install werkzeug
      python3 -m pip install flask-session
      

      【讨论】:

        【解决方案4】:

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

        这解决了我的问题。

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

        python3 -m pip uninstall werkzeug

        然后

        python3 -m pip install werkzeug==0.16.0

        【讨论】:

          【解决方案5】:

          要么将版本降级到 0.16.0,要么将 werkzeug.contrib.cache 替换为 cachelib

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

          安装 cachelib 并替换所有导入:

          from werkzeug.contrib.cache import FileSystemCache
          

          from cachelib import FileSystemCache
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-01-18
            • 1970-01-01
            • 2022-10-24
            • 2017-06-30
            • 1970-01-01
            • 1970-01-01
            • 2022-09-27
            • 2020-08-08
            相关资源
            最近更新 更多