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

部署Flask应用至Heroku时:从wsgi.py运行提示converting模块未找到,从app目录main.py运行正常

Fixing "ModuleNotFoundError: No module named 'converting'" When Deploying Flask to Heroku via WSGI.py

我完全懂你现在的困扰——直接在app目录里运行main.py时,Flask应用跑的好好的,但移到根目录用wsgi.py启动准备部署到Heroku时,突然就找不到converting模块了。这本质上是Python模块导入路径的问题,咱们来一步步解决它:

解决方案1:修改main.py里的导入语句

既然converting.py和main.py都在app目录下,你可以把main.py里的导入改成相对导入或者绝对导入:

相对导入(推荐,适合同目录模块)

把main.py里的:

from converting import *

改成:

from .converting import *

这里的.表示当前目录,告诉Python从main.py所在的app目录里找converting模块。

绝对导入

也可以用完整的模块路径导入:

from app.converting import *

这种方式更明确,尤其适合项目结构比较复杂的情况。

解决方案2:修改wsgi.py,添加app目录到Python路径

如果不想改main.py的代码,也可以在wsgi.py里手动把app目录加入Python的搜索路径,让它能找到里面的模块:

修改后的wsgi.py代码:

import sys
from pathlib import Path

# 把app目录添加到Python的模块搜索路径中
sys.path.append(str(Path(__file__).parent / 'app'))

from app.main import app

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

这样Python运行wsgi.py时,就会把app目录纳入搜索范围,自然能找到converting模块了。

额外提醒:确保Heroku Procfile配置正确

部署到Heroku时,别忘了根目录要有Procfile文件,内容应该是:

web: gunicorn wsgi:app

这会告诉Heroku用gunicorn(生产级WSGI服务器)运行wsgi.py里的app实例。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 15:32:31