Installation 由于导入异步重试时出现SyntaxError,initdb失败

Installation 由于导入异步重试时出现SyntaxError,initdb失败,installation,airflow,python-3.7,Installation,Airflow,Python 3.7,我是个新手。我通过pip安装apache气流安装它。当我在终端中运行命令initdb时,我得到下面的错误。我在安装过程中哪里出错了,如何解决此问题 aamir@aamir-Inspiron-3542:~$ airflow initdb [2019-03-30 18:32:27,309] {__init__.py:51} INFO - Using executor SequentialExecutor DB: sqlite:////home/aamir/airflow/airflow.db [20

我是个新手。我通过
pip安装apache气流
安装它。当我在终端中运行命令
initdb
时,我得到下面的错误。我在安装过程中哪里出错了,如何解决此问题

aamir@aamir-Inspiron-3542:~$ airflow initdb
[2019-03-30 18:32:27,309] {__init__.py:51} INFO - Using executor SequentialExecutor
DB: sqlite:////home/aamir/airflow/airflow.db
[2019-03-30 18:32:31,790] {db.py:338} INFO - Creating tables
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
ERROR [airflow.models.DagBag] Failed to import: /home/aamir/anaconda3/lib/python3.7/site-packages/airflow/example_dags/example_http_operator.py
Traceback (most recent call last):
  File "/home/aamir/anaconda3/lib/python3.7/site-packages/airflow/models.py", line 374, in process_file
    m = imp.load_source(mod_name, filepath)
  File "/home/aamir/anaconda3/lib/python3.7/imp.py", line 171, in load_source
    module = _load(spec)
  File "<frozen importlib._bootstrap>", line 696, in _load
  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 "/home/aamir/anaconda3/lib/python3.7/site-packages/airflow/example_dags/example_http_operator.py", line 27, in <module>
    from airflow.operators.http_operator import SimpleHttpOperator
  File "/home/aamir/anaconda3/lib/python3.7/site-packages/airflow/operators/http_operator.py", line 21, in <module>
    from airflow.hooks.http_hook import HttpHook
  File "/home/aamir/anaconda3/lib/python3.7/site-packages/airflow/hooks/http_hook.py", line 23, in <module>
    import tenacity
  File "/home/aamir/anaconda3/lib/python3.7/site-packages/tenacity/__init__.py", line 352
    from tenacity.async import AsyncRetrying
              ^
SyntaxError: invalid syntax
Done.
aamir@aamir-Inspiron-3542:~$initdb
[2019-03-3018:32:27309]{uuuu init.py:51}信息-使用执行器顺序执行器
DB:sqlite:////home/aamir/airflow/airflow.db
[2019-03-3018:32:31790]{db.py:338}信息-创建表
信息[alembic.runtime.migration]上下文impl SQLiteImpl。
INFO[alembic.runtime.migration]将采用非事务性DDL。
错误[airflow.models.DagBag]导入失败:/home/aamir/anaconda3/lib/python3.7/site-packages/airflow/example\u dags/example\u http\u operator.py
回溯(最近一次呼叫最后一次):
文件“/home/aamir/anaconda3/lib/python3.7/site packages/afflow/models.py”,第374行,进程文件中
m=imp.load\u源(模块名称、文件路径)
文件“/home/aamir/anaconda3/lib/python3.7/imp.py”,第171行,在load_source中
模块=_负载(规格)
文件“”,第696行,正在加载
文件“”,第677行,在\u加载\u解锁
exec_模块中第728行的文件“”
文件“”,第219行,在“调用”中,删除了“帧”
文件“/home/aamir/anaconda3/lib/python3.7/site packages/afflow/example_dags/example_http_operator.py”,第27行,在
从afflow.operators.http_operator导入SimpleHttpOperator
文件“/home/aamir/anaconda3/lib/python3.7/site packages/afflow/operators/http_operator.py”,第21行,在
从afflow.hooks.http_hook导入HttpHook
文件“/home/aamir/anaconda3/lib/python3.7/site packages/afflow/hooks/http_hook.py”,第23行,在
进口韧性
文件“/home/aamir/anaconda3/lib/python3.7/site-packages/坚韧/_-init__.py”,第352行
从Tensity.async导入异步重试
^
SyntaxError:无效语法
完成。

在Python 3.7中,
async
是一个保留关键字,这意味着它不能用于模块和变量名中。这在以前的Python版本中是有效的,但从3.7开始,会出现
SyntaxError

在您的例子中,Airflow预装了示例DAG,这些DAG是在运行
Airflow initdb
时解析的。其中一些DAG使用了依赖于的
SimpleHttpOperator
。该钩子还依赖于
韧性
库,该库尝试导入
异步
模块作为初始化的一部分:

 from tenacity.async import AsyncRetrying
要解决此问题,请等待/安装更新了Tensity的Airflow v1.10.3(请参阅)。或者,您可以降级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
$docker运行--rm-it python:3.7
Python 3.7.3(默认值,2019年3月27日23:40:30)
>>>从Tensity.async导入异步重试
文件“”,第1行
从Tensity.async导入异步重试
^
SyntaxError:无效语法
但它在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'
$docker运行--rm-it python:3.6
Python 3.6.8(默认值,2019年2月6日,12:07:20)
>>>从Tensity.async导入异步重试
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ModuleNotFoundError:没有名为“坚韧”的模块

我想这在
v1.10.x
中已经有了@Aamir Siddiqui您使用的是哪个版本的
Airflow
?@y2k shubham这是由Airflow-2876修补的,它正在进入
v1.10.3
。我将更新答案以包括在内。我认为这是并且
Python 3.7.2
似乎适合
avirflow v1.10.2
我不这么认为-请参阅。您可以在Python环境中使用
导入韧性
来测试这一点。