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

通过Elastic Beanstalk部署Django应用出现ModuleNotFoundError如何解决

问题排查方案

根因1:配置命名空间不匹配当前EB平台版本

你使用的aws:elasticbeanstalk:container:python是Amazon Linux 1版本EB Python平台的配置命名空间,你部署用的Amazon Linux 2平台已经更换了配置项规则,请将01_python.config内容修改为如下:

option_settings:
  "aws:elasticbeanstalk:application:environment":
    DJANGO_SETTINGS_MODULE: "django3.settings"
    PYTHONPATH: "/var/app/current:$PYTHONPATH"
  "wsgi":
    WSGIPath: "django3.wsgi:application"

部分Amazon Linux 2平台版本也支持用proxy命名空间配置文件路径,格式如下:

option_settings:
  "aws:elasticbeanstalk:application:environment":
    DJANGO_SETTINGS_MODULE: "django3.settings"
    PYTHONPATH: "/var/app/current:$PYTHONPATH"
  "aws:elasticbeanstalk:environment:proxy":
    WSGIPath: "django3/wsgi.py"

根因2:应用打包路径错误

执行部署前确认你是在**外层django3目录(包含manage.py的目录)**下直接执行打包/eb deploy命令,不要将外层django3目录作为子目录打包进压缩包。
正确的zip包根目录结构应该直接包含:

  • manage.py
  • requirements.txt
  • .ebextensions 文件夹
  • 内层django3 文件夹
    如果打包后根目录只有一个django3文件夹,会导致EB读取路径错位,触发模块找不到错误。

根因3:配置文件格式非法

确认01_python.config为合法YAML格式:

  • 全部用空格缩进,禁止使用tab
  • 缩进层级严格对应,没有多余的末尾空格
  • 字符串引号配对正确

根因4:wsgi模块导出错误

检查内层django3目录下的wsgi.py文件,确认存在可被全局导入的application对象,默认正确内容如下:

import os
from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django3.settings')
application = get_wsgi_application()

修改对应问题后重新部署即可解决报错。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 05:03:03