KeyError: 'babel' - относится к __init__.py - не использует Babel явно - PullRequest
0 голосов
/ 09 июня 2018

Я получаю одну и ту же ошибку в течение нескольких часов, независимо от того, какие изменения кода я делаю, и она ссылается на Babel, зависимость, которую я специально не вызываю или не использую, хотя я предполагаю, что она вызывается по причине.Это происходит от функции, которая должна использовать flask-table для динамического рендеринга HTML-кода для создания таблицы.

2018-06-08 21:30:12,121: [2018-06-08 21:30:12,114] ERROR in app: Exception on /checkin_home/ [POST]
2018-06-08 21:30:12,121: Traceback (most recent call last):
2018-06-08 21:30:12,121:   File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1982, in wsgi_app
2018-06-08 21:30:12,121:     response = self.full_dispatch_request()
2018-06-08 21:30:12,121:   File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1614, in full_dispatch_request
2018-06-08 21:30:12,122:     rv = self.handle_user_exception(e)
2018-06-08 21:30:12,122:   File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1517, in handle_user_exception
2018-06-08 21:30:12,122:     reraise(exc_type, exc_value, tb)
2018-06-08 21:30:12,122:   File "/usr/local/lib/python3.6/dist-packages/flask/_compat.py", line 33, in reraise
2018-06-08 21:30:12,122:     raise value
2018-06-08 21:30:12,122:   File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1612, in full_dispatch_request
2018-06-08 21:30:12,122:     rv = self.dispatch_request()
2018-06-08 21:30:12,122:   File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1598, in dispatch_request
2018-06-08 21:30:12,123:     return self.view_functions[rule.endpoint](**req.view_args)
2018-06-08 21:30:12,123:   File "/my/working_dir/path/mysite/project/mci.py", line 49, in checkin_home_post
2018-06-08 21:30:12,123:     return checkin_search_module.checkin_search(event_guid=event_guid, input_string=input_string)
2018-06-08 21:30:12,123:   File "/my/working_dir/path/mysite/project/checkin_search_module.py", line 3, in checkin_search
2018-06-08 21:30:12,123:     from flask_table import Table, Col
2018-06-08 21:30:12,123:   File "/my/working_dir/path/.local/lib/python3.6/site-packages/flask_table/__init__.py", line 1, in <module>
2018-06-08 21:30:12,123:     from .table import Table, create_table
2018-06-08 21:30:12,123:   File "/my/working_dir/path/.local/lib/python3.6/site-packages/flask_table/table.py", line 8, in <module>
2018-06-08 21:30:12,124:     from .columns import Col
2018-06-08 21:30:12,124:   File "/my/working_dir/path/.local/lib/python3.6/site-packages/flask_table/columns.py", line 161, in <module>
2018-06-08 21:30:12,124:     class BoolCol(OptCol):
2018-06-08 21:30:12,124:   File "/my/working_dir/path/.local/lib/python3.6/site-packages/flask_table/columns.py", line 166, in BoolCol
2018-06-08 21:30:12,124:     yes_display = _('Yes')
2018-06-08 21:30:12,124:   File "/usr/local/lib/python3.6/dist-packages/flask_babel/__init__.py", line 539, in gettext
2018-06-08 21:30:12,124:     t = get_translations()
2018-06-08 21:30:12,124:   File "/usr/local/lib/python3.6/dist-packages/flask_babel/__init__.py", line 214, in get_translations
2018-06-08 21:30:12,124:     babel = current_app.extensions['babel']
2018-06-08 21:30:12,125: KeyError: 'babel'

На базовом уровне ошибка выглядит следующим образом: он ищет ключ babel в current_app.extensions и не находит его.

Я попытался переустановить flask-table через pip (с зависимостью от Babel), и время истекло, и я также попытался переустановить Babel напрямую, на всякий случай, и это тоже былона свидание.Это Python 3.6.

Есть еще более конкретные ссылки вплоть до args и импорта, специфичные для моего кода, в строках 15-25 этой ошибки, но если я запускаю этот же код в консоли,все нормально, работает как положено.Просто когда я помещаю это во Flask, это не работает.Остальная часть приложения и маршруты функционируют нормально, только когда я POST до checkin_home, я получаю ошибку 500 выше.

Из исследования, которое я смог провести, кажется,что-то связанное с тем, как __init__.py в данном каталоге обрабатывается «контекстом приложения», но я, честно говоря, действительно не знаю, что это значит или как это исправить.Все, что я знаю, это файл в модулях, который сообщает Python, что они модули.У меня есть другое приложение Flask, которое отображает аналогичную таблицу HTML в той же среде, которая работает нормально.

Я могу опубликовать аппроксимацию кода, но это займет тонну запутывания конфиденциальной информации, поэтому, прежде чем я сделаю это, я хотел бы знать, возможно ли, это что-то простое, я просто невидя.

...