Apache Airflow initdb не выполняется из-за синтаксической ошибки - PullRequest
0 голосов
/ 10 июля 2019

Я создал virtualenv для python3, используя: virtualenv -p $(which python3) ENV

Затем активируйте источник source /Users/myusername/ENV/bin/activate

Установить apache-airflow:

pip install apache-airflow

затем which airflow выход /Users/myusername/ENV/bin/airflow Но когда я пытаюсь использовать initdb:

airflow initdb

Я получаю ошибку ниже:

    {db.py:350} INFO - Creating tables
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
WARNI [airflow.utils.log.logging_mixin.LoggingMixin] cryptography not found - values will not be stored encrypted.
ERROR [airflow.models.DagBag] Failed to import: /Library/Python/2.7/site-packages/airflow/example_dags/example_http_operator.py
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/airflow/models/__init__.py", line 413, in process_file
    m = imp.load_source(mod_name, filepath)
  File "/Library/Python/2.7/site-packages/airflow/example_dags/example_http_operator.py", line 27, in <module>
    from airflow.operators.http_operator import SimpleHttpOperator
  File "/Library/Python/2.7/site-packages/airflow/operators/http_operator.py", line 21, in <module>
    from airflow.hooks.http_hook import HttpHook
  File "/Library/Python/2.7/site-packages/airflow/hooks/http_hook.py", line 23, in <module>
    import tenacity
  File "/Library/Python/2.7/site-packages/tenacity/__init__.py", line 375, in <module>
    from tenacity.tornadoweb import TornadoRetrying
  File "/Library/Python/2.7/site-packages/tenacity/tornadoweb.py", line 24, in <module>
    from tornado import gen
  File "/Library/Python/2.7/site-packages/tornado-6.0.3-py2.7-macosx-10.14-intel.egg/tornado/gen.py", line 126
    def _value_from_stopiteration(e: Union[StopIteration, "Return"]) -> Any:
                                   ^
SyntaxError: invalid syntax
Done.
(ENV) ---------------------------------------------------------

Похоже, что в примерах сценариев используется Python 2.7, и он не может распознать синтаксис определения функции. Нужно ли исправлять пакет apache-airflow в следующем выпуске или я могу что-то сделать, чтобы это исправить? Я попытался исправить это: Используйте python2.7 вместо python3 затем установите airflow на Python 2.7 по умолчанию, включенный на Mac, но это приводит к другим ошибкам, таким как пакет «шестерка» не совместим.

1 Ответ

0 голосов
/ 13 июля 2019

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

В любом случае, странно, что airflow использует 2.7 Python, когда вы сказали, что он установлен в виртуальную среду Python 3..

...