Я действительно изо всех сил пытаюсь понять, как запустить APScheduler в моем flask приложении.
Структура приложения:
/app
├── project/
│ ├── __init__.py
│ ├── main.py
├── app.py
app.py:
from project import app
app.run(host='0.0.0.0', port=80, debug=True)
init .py:
from flask import Flask
app = Flask(__name__)
# set up blueprints
from .main import main as main_blueprint
app.register_blueprint(main_blueprint)
# set up apscheduler
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler(daemon=True)
scheduler.start()
main.py:
from flask import Blueprint, render_template, Flask
from . import scheduler
import time
main = Blueprint('main', __name__)
@main.route('/schedule_test')
def schedule_test():
scheduler.add_job(func=print_date_time, trigger="interval", seconds=3)
def print_date_time():
print(time.strftime("%A, %d. %B %Y %I:%M:%S %p"))
Когда я запускаю это, я получаю сообщение об ошибке:
ImportError: cannot import name 'scheduler' from 'project' (/app/project/__init__.py)
Я уверен, что делаю что-то простое неправильно, но не могу с этим справиться.
Изменить: чтобы было ясно, приложение flask работает нормально, когда я удаляю ссылки на планировщик .