Flask: Name 'app' kann nicht importiert werden

Versuche meine Python-Datei auszuführenupdater.py zu SSH zu einem Server und führen Sie einige Befehle alle paar eingestellten Intervalle aus oder so. Ich verwende APScheduler, um die Funktion @ auszuführeupdate_printer() von__init__.py. Anfangs habe ich einworking outside of application context error aber jemand schlug vor, dass ich nur App von @ importier__init__ .py. Allerdings klappt es nicht so gut. Ich bekomme immer eincannot import name 'app' Error

app.py

from queue_app import app

if __name__ == '__main__':
    app.run(debug=True)

__ init __. py

from flask import Flask, render_template
from apscheduler.schedulers.background import BackgroundScheduler
from queue_app.updater import update_printer
app = Flask(__name__)
app.config.from_object('config')

@app.before_first_request
def init():
    sched = BackgroundScheduler()
    sched.start()
    sched.add_job(update_printer, 'interval', seconds=10)

@app.route('/')
def index():
    return render_template('index.html')

updater.py

import paramiko
import json
from queue_app import app

def update_printer():
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(app.config['SSH_SERVER'], username = app.config['SSH_USERNAME'], password = app.config['SSH_PASSWORD'])

...

Dateistruktur

queue/
   app.py
   config.py
   queue_app/
      __init__.py
      updater.py

Erro

Traceback (most recent call last):
  File "app.py", line 1, in <module>
    from queue_app import app
  File "/Users/name/queue/queue_app/__init__.py", line 3, in <module>
    from queue_app.updater import update_printer
  File "/Users/name/queue/queue_app/updater.py", line 3, in <module>
    from queue_app import app
ImportError: cannot import name 'app'

Was muss ich tun können, um von updater.py auf die app.config zuzugreifen und den Fehler "Arbeiten außerhalb des Anwendungskontexts" zu vermeiden, wenn ich mit APScheduler ausgeführt werde?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage