FlaskInjector — Ошибка времени выполнения: Работа вне контекста запроса с Flask==2.0.0 и Werkzeug==2.0.1

#python #flask #flask-injector

Вопрос:

Я столкнулся с проблемой с моим приложением Flask из-за модуля FlaskInjector (Колба-инжектор==0.12.3) после обновления колбы до 2.0.0 и Werkzeug до 2.0.1.

Но когда вы понизите рейтинг Flask до 1.1.2 и Werkzeug до 1.0.1, мое приложение может запуститься. Я не совсем понимаю проблему, когда Flask выпустил новую версию.

 [2021-05-21 08:34:46  0700] [1] [INFO] Starting gunicorn 20.0.4
[2021-05-21 08:34:46  0700] [1] [INFO] Listening at: http://0.0.0.0:5000 (1)
[2021-05-21 08:34:46  0700] [1] [INFO] Using worker: threads
[2021-05-21 08:34:46  0700] [9] [INFO] Booting worker with pid: 9
Exception in worker process
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
    worker.init_process()
  File "/usr/local/lib/python3.7/site-packages/gunicorn/workers/gthread.py", line 92, in init_process
    super().init_process()
  File "/usr/local/lib/python3.7/site-packages/gunicorn/workers/base.py", line 119, in init_process
    self.load_wsgi()
  File "/usr/local/lib/python3.7/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
    self.wsgi = self.app.wsgi()
  File "/usr/local/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "/usr/local/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
    return self.load_wsgiapp()
  File "/usr/local/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/usr/local/lib/python3.7/site-packages/gunicorn/util.py", line 358, in import_app
    mod = importlib.import_module(module)
  File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/app/api/app.py", line 5, in <module>
    app, app_injector = create_app(FLASK_ENV)
  File "/app/api/__init__.py", line 40, in create_app
    injector = FlaskInjector(app=app, modules=[configure])
  File "/usr/local/lib/python3.7/site-packages/flask_injector/__init__.py", line 327, in __init__
    process_dict(container, injector)
  File "/usr/local/lib/python3.7/site-packages/flask_injector/__init__.py", line 379, in process_dict
    elif hasattr(value, '__call__'):
  File "/usr/local/lib/python3.7/site-packages/werkzeug/local.py", line 422, in __get__
    obj = instance._get_current_object()
  File "/usr/local/lib/python3.7/site-packages/werkzeug/local.py", line 544, in _get_current_object
    return self.__local()  # type: ignore
  File "/usr/local/lib/python3.7/site-packages/flask/globals.py", line 33, in _lookup_req_object
    raise RuntimeError(_request_ctx_err_msg)
RuntimeError: Working outside of request context.

This typically means that you attempted to use functionality that needed
an active HTTP request.  Consult the documentation on testing for
information about how to avoid this problem.
Worker exiting (pid: 9)
[2021-05-21 08:34:48  0700] [1] [INFO] Shutting down: Master
[2021-05-21 08:34:48  0700] [1] [INFO] Reason: Worker failed to boot.
 

Комментарии:

1. У тебя есть какое-нибудь решение для этого ?