You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac下Virtual Env无法识别Flask库问题求助

问题解决:ModuleNotFoundError: No module named 'flask.ext'

核心原因

Flask 1.0 版本之后彻底废弃了 flask.ext 这种扩展导入方式,你代码里的旧写法已经不再被支持,这才是报错的根本原因,和你重装Flask的操作无关。

具体修复步骤

1. 修正导入语句

把代码里的旧导入替换成当前标准的导入方式:

from flask import Flask, render_template
# 替换 flask.ext.bootstrap 为 flask_bootstrap
from flask_bootstrap import Bootstrap
# 替换 flask.ext.wtf 为 flask_wtf,同时更新Form的父类
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import Required, Length

app = Flask(__name__)
app.config['SECRET_KEY'] = 'top secret!'
bootstrap = Bootstrap(app)

# 注意这里继承FlaskForm而非原来的Form
class NameForm(FlaskForm):
    name = StringField('What is your name?', validators=[Required(),
                                                         Length(1, 16)])
    submit = SubmitField('Submit')

@app.route('/', methods=['GET', 'POST'])
def index():
    name = None
    form = NameForm()
    if form.validate_on_submit():
        name = form.name.data
        form.name.data = ''
    return render_template('index.html', form=form, name=name)

if __name__ == '__main__':
    app.run(debug=True)

2. 确保虚拟环境中安装正确的扩展包

激活你的虚拟环境后,执行以下命令安装/更新对应扩展:

# 激活虚拟环境(假设你的虚拟环境目录名为venv)
source venv/bin/activate
# 安装适配新版导入方式的扩展包
pip install flask-bootstrap flask-wtf

3. 验证虚拟环境激活状态

执行以下命令确认当前环境是目标虚拟环境,且包已正确安装:

# 查看当前Python解释器路径,确认指向虚拟环境目录
which python
# 查看已安装包列表,确认flask-bootstrap、flask-wtf、Flask在列
pip list

额外说明

  • 旧版flask-bootstrap(如0.3.x版本)仅支持flask.ext导入,必须升级到新版才能适配当前Flask版本。
  • 只有在虚拟环境激活状态下执行pip命令,包才会被安装到虚拟环境内,否则会被安装到系统Python中,导致脚本运行时无法识别。

内容的提问来源于stack exchange,提问作者user14650291

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 11:17:43