Я создал 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, но это приводит к другим ошибкам, таким как пакет «шестерка» не совместим.