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

Heroku部署Flask应用报错:ModuleNotFoundError: No module named 'data_collector'

解决Heroku部署Flask时找不到同目录模块的问题

可能的原因及解决方案

1. 文件名大小写不匹配

Heroku基于Linux环境,文件名严格区分大小写,但本地Windows/macOS默认不区分。如果本地文件名和Git提交的文件名大小写不一致(比如本地是Data_Collector.py,远程是data_collector.py),就会触发模块找不到的错误。

  • 解决:统一本地与远程的文件名大小写,再重新提交代码:
    git mv Data_Collector.py data_collector.py
    git add .
    git commit -m "修正文件名大小写"
    git push heroku main
    

2. 模块文件未被Git追踪

如果data_collector.py被加入.gitignore,或者从未执行过git add命令,Heroku服务器上不会存在这个文件。

  • 解决:检查.gitignore文件,确保未排除data_collector.py;执行以下命令提交文件:
    git add data_collector.py
    git commit -m "添加data_collector模块文件"
    git push heroku main
    

3. Python路径未包含当前目录

本地运行时当前目录默认在Python路径中,但Heroku的运行环境可能存在路径识别问题。可以手动将当前目录加入Python路径:

  • 修改app.py开头代码:
    import sys
    from os.path import abspath, dirname
    sys.path.insert(0, dirname(abspath(__file__)))
    
    from flask import Flask, render_template
    from data_collector import collect_data
    import sqlite3
    

4. 缺少__init__.py文件

若项目需要被识别为Python包,缺少空的__init__.py文件可能导致模块无法被正常导入。

  • 解决:在app.py同目录创建空的__init__.py,并提交到Git:
    touch __init__.py
    git add __init__.py
    git commit -m "添加__init__.py以支持包结构"
    git push heroku main
    

验证方法

部署后可通过Heroku命令行查看服务器文件结构,确认data_collector.py存在:

heroku run ls -l

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:22:48