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

部署Django项目到AWS EB时出现ModuleNotFoundError错误

Django部署到Elastic Beanstalk遇ModuleNotFoundError问题解决

问题描述

将Python 3.8版本的Django项目部署到Amazon Linux 2/3.4.2 64位Elastic Beanstalk环境时,日志持续报错ModuleNotFoundError: No module named 'application'。

最初使用的.ebextensions/django.config配置:

option_settings:
  aws:elasticbeanstalk:container:python:
    WSGIPath: pos.wsgi:application
  aws:elasticbeanstalk:application:environment:
    DJANGO_SETTINGS_MODULE: pos.settings

修改为以下配置后问题仍未解决:

option_settings:
  aws:elasticbeanstalk:container:python:
    WSGIPath: pos/wsgi.py

排查与解决方案

  • 验证项目目录结构
    确保pos目录是合法Python包(目录内存在__init__.py文件),且wsgi.py确实位于pos目录下。Elastic Beanstalk的Python容器依赖正确的包结构识别WSGI应用。

  • 确认WSGIPath格式与工作目录
    Amazon Linux 2环境下,WSGIPath正确格式应为<module>.wsgi:application。需确认Elastic Beanstalk的工作目录指向项目根目录(即pos目录所在的层级)。若部署包存在嵌套目录问题(比如将项目文件夹作为子目录打包),会导致模块无法被找到,需调整部署包结构,直接将项目根目录下的所有文件(含pos、requirements.txt等)打包上传。

  • 配置PYTHONPATH环境变量
    若Python的sys.path未包含项目根目录,可通过.ebextensions配置添加PYTHONPATH指定路径,示例配置:

option_settings:
  aws:elasticbeanstalk:application:environment:
    PYTHONPATH: "/opt/python/current/app"
    DJANGO_SETTINGS_MODULE: pos.settings
  aws:elasticbeanstalk:container:python:
    WSGIPath: pos.wsgi:application
  • 查看完整日志定位问题
    查看EB控制台的完整日志或服务器上的/var/log/httpd/error_log文件,确认模块查找路径是否正确,排查是否存在其他依赖缺失或路径配置错误。

  • 使用EB CLI生成配置
    若手动配置容易出错,可使用Elastic Beanstalk CLI初始化项目,工具会自动生成适配环境的正确配置文件,避免路径类问题。

内容的提问来源于stack exchange,提问作者Mike D Hovhannisyan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 21:10:28