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

部署Flask应用到Elastic Beanstalk遇ModuleNotFoundError:找不到backend模块

解决Elastic Beanstalk部署Flask时的ModuleNotFoundError问题

问题原因

本地运行时,你的工作目录是包含backend文件夹的根目录,Python会自动将当前目录加入sys.path,所以能识别backend模块。但Elastic Beanstalk的运行环境中,工作路径或Python路径配置逻辑不同,导致无法找到backend作为顶层模块。

解决方案

方案1:改用相对导入修改代码

application.py本身位于backend目录下,导入同目录的configurations模块可以用相对导入替代绝对导入,更符合Python包规范:

from flask import Flask
# 替换原有的 from backend import configurations
from . import configurations

application = Flask(__name__)

方案2:手动添加项目根目录到Python路径

如果不想修改导入逻辑,可在application.py开头添加代码,强制将项目根目录加入sys.path:

import sys
import os

# 获取项目根目录(backend文件夹的父目录)
root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if root_dir not in sys.path:
    sys.path.append(root_dir)

from flask import Flask
from backend import configurations

application = Flask(__name__)

这种方式能确保无论EB的运行路径如何,Python都能找到backend模块。

方案3:通过EB扩展配置PYTHONPATH

新建.ebextensions/python.config文件(若没有.ebextensions文件夹则先创建),添加以下配置来指定Python路径:

option_settings:
  "aws:elasticbeanstalk:application:environment":
    PYTHONPATH: "/opt/python/current/app:/opt/python/current/app/backend"

将项目根目录和backend目录都加入PYTHONPATH,确保模块能被正确识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 20:22:21