В Python 3.7 async
является зарезервированным ключевым словом, что означает, что его нельзя использовать в именах модулей и переменных. Это было действительно в предыдущих версиях Python, но начиная с 3.7, SyntaxError
повышается.
В вашем случае Airflow поставляется с предустановленными примерами групп доступности баз данных, которые были проанализированы при запуске airflow initdb
. Некоторые из этих DAG используют SimpleHttpOperator
, который зависит от http_hook.py
. Этот хук, кроме того, зависит от библиотеки tenacity
, которая пытается импортировать модуль async
как часть инициализации:
from tenacity.async import AsyncRetrying
Чтобы это исправить, подождите / установите Airflow v1.10.3, который обновляет Tenacity (см. AIRFLOW-2876 ). Кроме того, вы можете понизить версию своего Python. Вы можете увидеть, что импорт не удается с помощью 3.7.3:
$ docker run --rm -it python:3.7
Python 3.7.3 (default, Mar 27 2019, 23:40:30)
>>> from tenacity.async import AsyncRetrying
File "<stdin>", line 1
from tenacity.async import AsyncRetrying
^
SyntaxError: invalid syntax
Но в версии 3.6.8 все работает нормально:
$ docker run --rm -it python:3.6
Python 3.6.8 (default, Feb 6 2019, 12:07:20)
>>> from tenacity.async import AsyncRetrying
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'tenacity'