Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.3K
Visualizações
Ningún módulo llamado 'aplicación' Error al implementar una aplicación web simple en Elastic Beanstalk

Estoy implementando una aplicación web en beanstalk elásticos usando este tutorial y el mismo archivo 'application.py' que tienen: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-flask. html#python-flask-setup-venv

Recibo un error 502 cuando voy al sitio y el estado del medio ambiente está degradado o grave. Cuando reviso los registros, veo esto (que supongo que es la raíz del problema):

 Jun 19 22:05:18 ip-172-31-15-237 web: File "/usr/lib64/python3.7/importlib/__init__.py", line 127, in import_module Jun 19 22:05:18 ip-172-31-15-237 web: return _bootstrap._gcd_import(name[level:], package, level) Jun 19 22:05:18 ip-172-31-15-237 web: File "<frozen importlib._bootstrap>", line 1006, in _gcd_import Jun 19 22:05:18 ip-172-31-15-237 web: File "<frozen importlib._bootstrap>", line 983, in _find_and_load Jun 19 22:05:18 ip-172-31-15-237 web: File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked Jun 19 22:05:18 ip-172-31-15-237 web: ModuleNotFoundError: No module named 'application'

Aquí está mi archivo application.py:

 from flask import Flask # print a nice greeting. def say_hello(username = "World"): return '<p>Hello %s!</p>\n' % username # some bits of text for the page. header_text = ''' <html>\n<head> <title>EB Flask Test</title> </head>\n<body>''' instructions = ''' <p><em>Hint</em>: This is a RESTful web service! Append a username to the URL (for example: <code>/Thelonious</code>) to say hello to someone specific.</p>\n''' home_link = '<p><a href="/">Back</a></p>\n' footer_text = '</body>\n</html>' # EB looks for an 'application' callable by default. application = Flask(__name__) # add a rule for the index page. application.add_url_rule('/', 'index', (lambda: header_text + say_hello() + instructions + footer_text)) # add a rule when the page is accessed with a name appended to the site # URL. application.add_url_rule('/<username>', 'hello', (lambda username: header_text + say_hello(username) + home_link + footer_text)) # run the app. if __name__ == "__main__": # Setting debug to True enables debug output. This line should be # removed before deploying a production app. #application.debug = True application.run()

Y aquí está mi archivo requirements.txt:

 click==7.1.2 Flask==1.1.2 itsdangerous==1.1.0 Jinja2==2.11.2 MarkupSafe==1.1.1 numpy==1.16.3 pandas==0.24.2 python-dateutil==2.8.1 pytz==2020.1 six==1.15.0 Werkzeug==1.0.1

La carpeta comprimida que subo a Elastic Beanstalk consta solo de estos dos archivos. También tenía un entorno virtual allí, pero el tutorial dice que no lo necesitas, así que me deshice de él.

También estoy ejecutando Python 3.7.1, así que tengo pip3. Y debo señalar que la aplicación web funciona cuando solo ejecuto el código python.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Tuve el mismo problema que tú. Bajar de categoría a AL1 resuelve esto, pero trae más problemas.

Descubrí que puede hacer que su aplicación sea compatible agregando la siguiente línea al final del archivo.

app = application

Alternativamente, puede hacer esto cuando define la instancia del matraz:

application = app = Flask(__name__) no olvide importar ambos en application.py si es necesario.

Esto funciona porque aws necesita que la instancia de Flask se llame aplicación, pero gunicorn necesita que la instancia de Flask se llame aplicación, por lo que de esta manera los hace felices a ambos.

Todos en el mundo llaman a la aplicación de instancias de Flask, excepto por aws aparentemente.

over 4 years ago · Santiago Trujillo Relatório

0

Tuve que hacer dos cosas para resolver el error No module named 'application' al implementar mi aplicación de matraz en beanstalk elásticos:

  1. Como mencionó Quinten Cabo , cambié el nombre de la variable de la app :
 application = app = Flask(__name__)
  1. Además, necesitaba cambiar el nombre del archivo python que contenía la aplicación de app.py a application.py
over 4 years ago · Santiago Trujillo Relatório

0

Una posible razón es el uso del entorno Amazon Linux 2 , en lugar de Amazon Linux 1 .

La lista de entornos de Python y sus distribuciones de Linux está aquí .

Desde el enlace que proporcionaste:

En este tutorial , usamos Python 3.6 y la versión correspondiente de la plataforma Elastic Beanstalk.

Python 3.6 es compatible con el entorno Amazon Linux 1 , mientras que utiliza Python 3.7, que es para el entorno Amazon Linux 2 .

Hay muchas diferencias entre AL1 y AL2, que los hacen incompatibles .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda