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

Python同目录存在forms.py却报ModuleNotFoundError是什么原因?

报错原因
  • sys.path.append()参数配置错误:sys.path是Python检索模块的目录集合,仅支持传入目录路径,你传入了forms.py的完整文件路径,无法被识别。同时你填写的路径开头多了冗余字符f,路径本身无效。
  • 导入逻辑不符合Python规则:如果项目启动入口不在app目录下,直接使用import forms的写法,Python不会主动到views.py所在的同目录检索模块,导致找不到对应文件。
解决方法

按适配性从高到低提供三种方案:

  1. 【推荐,符合Python包规范】使用同目录相对导入,直接替换views.py中的导入代码即可:
from . import forms

该方案适配标准Flask项目结构,只要app目录被作为Python包正常加载(即启动入口在app的上级目录)就可以正常运行,无需配置路径。
2. 【适配临时调试场景】修正sys.path的配置逻辑,传入正确的目录路径,不需要硬编码绝对路径的写法如下:

import sys
import os
# 动态获取当前views.py所在的目录,添加到模块检索路径
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
import forms
  1. 【极简适配,仅适合本地测试】如果是直接在app目录下执行views.py作为启动入口,直接删除所有sys.path相关的代码,保留import forms即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:15:04