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.

uwisg: ModuleNotFoundError: No se encontró el módulo llamado ‘flask’

Estoy tratando de hacer una aplicación Flask y estoy siguiendo los tutoriales conocidos que existen. Estoy utilizando contenedores de Docker, por lo que no necesito entornos virtuales, ya que los contenedores son entornos aislados.

Esta es la carpeta de mi proyecto para la aplicación de Flask:

flask
├── Dockerfile
├── app
│   ├── __init__.py
│   ├── routes.py
│   ├── static
│   └── templates
│       ├── index.html
│       └── test.html
├── requirements.txt
├── run.py
└── uwsgi.ini

Cuando inicio el contenedor con docker-compose, obtengo el siguiente error.

Traceback (most recent call last):
  File "run.py", line 1, in <module>
    from app import app #as application
  File "./app/__init__.py", line 1, in <module>
    from flask import Flask
ModuleNotFoundError: No module named 'flask'
unable to load app 0 (mountpoint='') (callable not found or import error)

He leído muchas otras preguntas con este error, pero ninguna de esas soluciones me ayudó o tenía que ver con venv (que no estoy usando). Así que espero que alguien pueda señalar dónde podría estar el problema.

He instalado Flask en el Dockerfile con:

RUN python3 -m pip install --disable-pip-version-check --no-cache-dir -r /tmp/requirements.txt

(También probé con pip3 install... pero no hace ninguna diferencia, Flask se instala de todos modos). del registro de compilación:

Successfully installed Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 flask-2.0.2 itsdangerous-2.0.1
run.py

from app import app

Esta es la importación que parece fallar:

__init__.py

from flask import Flask
app = Flask('name')
from app import routes

Extracto de uwsgi.ini:

[uwsgi]
plugin = python3
wsgi-file = run.py
callable = app

Después de iniciar el contenedor con docker-compose, ingreso al contenedor, inicio una shell interactiva de Python3 y no tengo ningún problema al hacer from flask import Flask.

He intentado ejecutar el contenedor como superusuario, pero eso no cambió nada.

¿Alguna idea? ¡Gracias!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema podría no estar relacionado con la instalación de Flask. Una posible razón para este error podría ser que la ruta de Python utilizada por uwsgi no sea la misma que la utilizada en la terminal del contenedor.

    Puedes intentar agregar la siguiente línea a tu archivo uwsgi.ini:

    pythonpath = /ruta/a/flask
    

    Asegúrate de reemplazar “/ruta/a/flask” por la ruta absoluta al directorio raíz de tu aplicación Flask.

    Otra posible razón para este error podría ser que uwsgi no está encontrando el módulo de la aplicación. Puedes intentar agregar la siguiente línea a tu archivo uwsgi.ini:

    module = app:app
    

    Esto debe especificar la ruta correcta al módulo de la aplicación.

    Si ninguna de estas soluciones funciona, podrías intentar agregar algunas declaraciones de depuración a tu código para ver dónde ocurre el error de importación. Por ejemplo, podrías agregar la siguiente línea a tu archivo run.py:

    print("Importando app...")
    from app import app
    

    Esto debería imprimir “Importando app…” en la terminal cuando se ejecute run.py.

    ¡Espero que esto ayude! Avísame si tienes alguna pregunta adicional.

Comments are closed.