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

273
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 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