Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

284
Views
Inicie la fábrica de aplicaciones Flask (con create_app()) desde un archivo externo

Siguiendo este tutorial para dockerizar una pila Flask, estoy tratando de iniciar una aplicación existente desde un archivo manage.py externo

La estructura de mi aplicación es así:

 └── services └── web ├── manage.py └── myapp └── requirements.txt └── myserver └──__init__.py └──config └──config.py

El archivo manage.py:

 import os os.chdir('myapp') from flask.cli import FlaskGroup from myapp.myserver import create_app app = create_app() cli = FlaskGroup(app) if __name__ == "__main__": cli()

y finalmente, el myapp/myserver/__init__.py (simplificado):

 from myserver.config.config import Config # this file exists and imports work when i launch from pycharm def create_app(): app = Flask(__name__) ...other stuff here return app

Entonces, cuando intento ejecutar: python3 manage.py run , el resultado es:

 File "manage.py", line 4, in <module> from myapp.myserver import create_app File "/var/www/html/flask-docker/services/web/myapp/myserver/__init__.py", line 12, in <module> from myserver.config.config import Config

La importación de configuración de __init__.py no se puede resolver. Traté de resolver esto con el chdir visible en manage.py.

Mis variables env son las que obtuve de una configuración de matraz Pycharm en funcionamiento:

 FLASK_APP="myserver:create_app()"

Logré pasar con éxito la instrucción de importación reemplazando:

 from myserver.config.config import Config

por

 from .config.config import Config

pero todo el proyecto contiene importaciones comenzando por myserver

Entonces, la pregunta final es: ¿por qué el archivo de inicio dentro de myserver no reconoce la carpeta/módulo de myserver? Esta configuración funciona bien cuando la lanzo a través de PyCharm

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

No puede encontrar el módulo porque no sabe en qué directorio buscar para encontrar el archivo manage.py.

intente agregar la información de manage.py al archivo de inicio. desde la gestión de importación web

over 4 years ago · Santiago Trujillo Report

0

El comentario de Brandon y esta respuesta me llevaron a una solución.

gestionar.py

 import sys #this is the fix sys.path.append(os.path.join(os.path.dirname(__file__),'myapp')) from flask.cli import FlaskGroup from myapp.myserver import create_app app = create_app() cli = FlaskGroup(app) ## Heading ## if __name__ == "__main__": cli()

En lugar de cambiar el directorio de trabajo con os.chdir , lo cambio usando sys.path . Ahora puedo usar el archivo de inicio de mis servidores

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!