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

Flask服务器无法识别自定义模块(ModuleNotFoundError),如何正确声明?

Flask自定义模块导入报错解决办法

1. 先修正导入语法错误

你当前的导入代码存在语法问题:

from my_helpers.helper_1 as h1

正确写法二选一:

  • 导入整个模块并设置别名:
    import my_helpers.helper_1 as h1
    
  • 导入模块内特定对象并设置别名(替换目标对象为实际要导入的内容):
    from my_helpers.helper_1 import 目标对象 as h1
    

2. 将my_helpers转为Python可识别的包

在my_helpers子文件夹下创建一个空的__init__.py文件,Python会自动将包含该文件的文件夹识别为可导入的包。这个文件可以是空的,也可以添加包初始化逻辑(比如批量导出模块内容)。

3. 确保项目根目录在Python路径中

检查你的项目结构,确保wsgi.py所在的目录是项目根目录。如果仍有问题,可在主应用文件(或wsgi.py)开头添加以下代码,强制将项目根目录加入Python搜索路径:

import sys
from pathlib import Path

# 获取当前文件所在目录的父目录(即项目根目录)
project_root = Path(__file__).parent
sys.path.append(str(project_root))

注意:如果my_helpers并非在项目根目录下(比如在app子文件夹内),导入路径需要对应调整,例如:from app.my_helpers.helper_1 import ...

4. Heroku部署的额外检查点

  • 确认my_helpers文件夹、__init__.py和helper_1.py都已提交到Git仓库,没有被.gitignore规则排除
  • 检查Procfile命令是否正确,比如使用gunicorn的话,Procfile内容应为:web: gunicorn wsgi:app

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 16:18:34