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

Flask项目同目录forms模块导入失败,报错ModuleNotFoundError求助

解决Flask导入forms模块失败的问题

问题根源分析

你遇到的ModuleNotFoundError主要由两个原因导致:一是forms.py本身存在语法错误,Python无法正常加载该模块;二是运行脚本时的工作目录不正确。

具体修复步骤

1. 修复forms.py的语法错误

你的forms.py中,LoginForm类被错误嵌套在RegistrationForm类内部,这会直接导致模块加载失败,同时无法正确导出LoginForm。修正后的代码如下:

from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField, BooleanField
from wtforms.validators import DataRequired, Length, Email, EqualTo

class RegistrationForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired(), 
                           Length(min=2, max=20)])
    email = StringField('Email',
                         validators=[DataRequired(), Email()])
    password = PasswordField('Password', validators=[DataRequired()])
    
    confirm_password = PasswordField('Confirm Password', 
                            validators=[DataRequired(), EqualTo('password')])
    submit = SubmitField('Sign Up')

# 注意:LoginForm需与RegistrationForm同级,不要缩进
class LoginForm(FlaskForm):
    email = StringField('Email',
                         validators=[DataRequired(), Email()])
    password = PasswordField('Password', validators=[DataRequired()])
    remember = BooleanField('Remember Me')
    submit = SubmitField('Login')

2. 确保运行路径正确

  • 确认flask_blog.py和forms.py在同一文件夹下,不存在跨子目录的情况
  • 打开终端,切换到这两个文件所在的文件夹,执行python flask_blog.py启动项目,不要在其他目录下运行脚本

3. 备选导入方式(若上述步骤无效)

如果仍出现导入错误,可尝试使用相对导入,同时确保项目目录下存在空的__init__.py文件(将目录标记为Python包):

from .forms import RegistrationForm, LoginForm

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:01:10