ModuleNotFoundError: No module named 'flask_mail'

ModuleNotFoundError: No module named 'flask_mail'

我正在创建一个网络应用程序,用户在注册后会收到一封确认邮件。 但是我在命令行中遇到错误,Traceback(最近一次调用最后一次): 文件“/usr/local/lib/python3.9/site-packages/flask/cli.py”,第 240 行,在 locate_app 中 导入(module_name) 文件“/home/ubuntu/flask/registration/application.py”,第 3 行,位于 来自 flask_mail 导入邮件、消息 ModuleNotFoundError:没有名为 'flask_mail' 的模块并且网页上出现错误,Internal Server Error 服务器遇到内部错误,无法完成您的请求。要么是服务器过载,要么是应用程序出错。

application.py

import os
from flask import Flask, redirect, render_template, request
from flask_mail import Mail, Message
from cs50 import SQL

app = Flask(__name__)
app.config["MAIL_DEFAULT_SENDER"] = os.getenv("MAIL_DEFAULT_SENDER")
app.config["MAIL_PASSWORD"] = os.getenv("MAIL_PASSWORD")
app.config["MAIL_PORT"] = 587
app.config["MAIL_SERVER"] = smtp.gmail.com
app.config["MAIL_USE_TLS"] = True
app.config["MAIL_USERNAME"] = os.getenv("MAIL_USERNAME")
mail = Mail(app)


db = SQL("sqlite:///froshims.db")
REGISTRANTS = {}

SPORT=["Cricket", "Football", "Badminton", "Kho-Kho", "Kabaddi"]

@app.route("/", methods = ["GET", "POST"])
def index():
    if request.method == "GET":
        return render_template("index.html", sports = SPORT)
    email = request.form.get("email")
    sport = request.form.get("sport")
    if not email:
        return render_template("failure.html", message="E-mail not entered")
    if not sport:
        return render_template("failure.html", message="Sport not selected")
    if sport not in SPORT:
        return render_template("failure.html", message="Sport not in list. Don't try to hack our website.")
    if request.method == "POST":
        REGISTRANTS[name]=sport
        print("yes")
        db.execute("INSERT INTO registrants (name, sport) VALUES (?,?)", name, sport)
        message = Message("You are registered!", recipients=[email])
        mail.send(message)
        return redirect("success")

@app.route("/success")
def success():
    print("kaam kar na")
    registrants = db.execute("SELECT * FROM registrants")
    return render_template("success.html", registrants = registrants)

我无法弄清楚这个问题。我是 Flask 的新手。请指导我。

我在 flask_mail 导入时遇到了同样的问题。单独在代码编辑器上的虚拟环境中 pip 安装 Flask-Mail 可能不会导致模块导入错误。 转到您的命令行进入应用程序目录 另外,请确保您的 venv 环境中的 pip 版本是最新的。

pip install Flask-Mail

这对我有用。