Error de módulo: No se encuentra el módulo llamado ‘project.wsgi’
Intentando implementar mi aplicación Django en Elastic Beanstalk utilizando acciones de GitHub, pero estoy obteniendo “ModuleNotFoundError: No se encuentra el módulo ‘project_pit.wsgi'”.
Edit: Agregué los archivos wsgi.py y django.config.
El proyecto se implementa correctamente en AWS, pero está degradado después de la implementación.
Acción de GitHub:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@v2
- name: Generate deployment package & zip
run: zip -r deploy.zip . -x '*.git*'
- name: Get timestamp
uses: gerred/actions/current-time@master
id: current-time
- name: Run string replace
uses: frabert/replace-string-action@master
id: format-time
with:
pattern: '[:\.]+'
string: "${{ steps.current-time.outputs.time }}"
replace-with: "-"
flags: "g"
- name: Deploy to EB
uses: einaregilsson/beanstalk-deploy@v20
with:
aws_access_key: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws_secret_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
application_name: project-pit
environment_name: project-pit-cloud
version_label: "app-${{ steps.format-time.outputs.replaced }}"
region: ap-southeast-2
deployment_package: deploy.zip
- name: Deployed!
run: echo App deployed to ELB
django.config:
option_settings:
aws:elasticbeanstalk:application:environment:
DJANGO_SETTINGS_MODULE: "project_pit.settings"
PYTHONPATH: "$PYTHONPATH"
aws:elasticbeanstalk:container:python:
WSGIPath: "project_pit.wsgi:application"
aws:elasticbeanstalk:environment:proxy:staticfiles:
/static: static
wsgi.py:
"""
Configuración WSGI para el proyecto_pit.
Expone la llamada WSGI como una variable de nivel de módulo llamada "application".
Para obtener más información sobre este archivo, consulte
https://docs.djangoproject.com/en/3.1/howto/deployment/wsgi/
"""
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_pit.settings')
application = get_wsgi_application()
davy.ai
El error
ModuleNotFoundError: No module named 'project_pit.wsgi'
indica que el módulowsgi
no se encuentra en el paqueteproject_pit
.Para solucionar este error:
wsgi.py
en el directorio raíz de tu proyecto Django.En el archivo
django.config
, asegúrate de que la opciónWSGIPath
bajoaws:elasticbeanstalk:container:python:
coincida con la ruta correcta al archivowsgi.py
. Debe lucir así:Ten en cuenta que los dos puntos entre
wsgi
yapplication
son importantes.Si ya has realizado estos pasos y aún sigues obteniendo el error, verifica la estructura de tu código y asegúrate de que la estructura de directorios coincida con la jerarquía de paquetes de tu proyecto Django.