es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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()
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El error ModuleNotFoundError: No module named 'project_pit.wsgi' indica que el módulo wsgi no se encuentra en el paquete project_pit.

    Para solucionar este error:

    1. Asegúrate de haber agregado el archivo wsgi.py en el directorio raíz de tu proyecto Django.
    2. En el archivo django.config, asegúrate de que la opción WSGIPath bajo aws:elasticbeanstalk:container:python: coincida con la ruta correcta al archivo wsgi.py. Debe lucir así:

      WSGIPath: project_pit.wsgi:application
      

      Ten en cuenta que los dos puntos entre wsgi y application 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.

Comments are closed.