ModuleNotFoundError:没有名为“ flask_session”的模块

chr*_*ris 3 python flask

我有一个简单的python文件,尝试将其设置为使用会话,当我运行该文件时,出现以下错误:

ModuleNotFoundError:没有名为“ flask_session”的模块

我相信我已正确导入了模块,是否还有其他可以检查以正确设置的模块?

from flask import Flask, render_template, request, session
from flask_session import Session

app = Flask(__name__)

app.config["SESSION_PERMANENT"] = False
app.config["SESSION_TYPE"] = "filesystem"

Session(app)

@app.route("/", methods=["GET", "POST"])
def index():
    if session.get("notes") is None:
        session["notes"] = []

    if request.method == "POST":
        note = request.form.get("note")
        session["notes"].append(note)

    return render_template("index.html", notes=notes)
Run Code Online (Sandbox Code Playgroud)

这是回溯(最近一次拨打电话)

File "c:\python37\lib\site-packages\flask\cli.py", line 325, in __call__
Open an interactive python shell in this frameself._flush_bg_loading_exception()

File "c:\python37\lib\site-packages\flask\cli.py", line 313, in _flush_bg_loading_exception
reraise(*exc_info)

File "c:\python37\lib\site-packages\flask\_compat.py", line 35, in reraise
raise value

File "c:\python37\lib\site-packages\flask\cli.py", line 302, in _load_app
self._load_unlocked()

File "c:\python37\lib\site-packages\flask\cli.py", line 317, in _load_unlocked
self._app = rv = self.loader()

File "c:\python37\lib\site-packages\flask\cli.py", line 372, in load_app
app = locate_app(self, import_name, name)

File "c:\python37\lib\site-packages\flask\cli.py", line 242, in locate_app
'\n\n{tb}'.format(name=module_name, tb=traceback.format_exc())
Run Code Online (Sandbox Code Playgroud)

小智 11

我多次找不到flask_session模块,经过数千次尝试,我花了2个小时才找到修复程序。好吧,我也访问了许多站点以寻找解决方案,但没有得到任何解决方案。我在哈佛 edx.org 上学习在线课程 cs50 网络开发时遇到了这个错误,当我阅读 reddit 上的论坛讨论时,我看到评论中提到哈佛使用了一个特殊的服务器来使它工作,我感到了痛苦不去哈佛,但两个小时后我尖叫起来,因为我刚刚找到了一个在互联网上找不到的解决方案。

你不应该使用 from flask_session import Session

而是使用 from flask_session.__init__ import Session

我无法解释我们为什么在这里这样做的术语,但如果你想了解我们为什么这样做,你可以私信我。快乐编码!


小智 5

我在做哈佛的CS50x类时首先遇到了这个问题。我正在使用Linux,并且一直在使用Python3,因为事实证明我已经为Python2安装了Flask-Session。我不知道它是否也适用于Mac,但是我改用了以下内容:

$ pip3 install flask-session
Run Code Online (Sandbox Code Playgroud)

然后,您可以检查是否已使用pip的Frozen命令安装了它。完成此操作后,我在VSCode中的pylint不再给出错误。


Mic*_*son -1

你在使用这个库吗?https://pythonhosted.org/Flask-Session/

文档建议以这种方式导入它:from flask.ext.session import Session

  • FWIW,我相信该文档已经过时了。[`flask.ext.xxxx` 已弃用](http://flask.pocoo.org/docs/1.0/upgrading/#extension-imports),应该使用 `flask_xxxx` 代替。OP 中的路径质疑 Python 3.7,“flask.ext.xxxx”不起作用 (13认同)