No se puede ejecutar el flujo de aire de Apache después de una nueva instalación, error de importación de Python

19

Después de una nueva instalación utilizando pip install apache-airflow, cualquier intento de ejecutar el flujo de aire termina con un error de importación de Python:

Traceback (most recent call last):
File "/Users/\*/env/bin/airflow", line 26, in <module> from airflow.bin.cli import CLIFactory
File "/Users/\*/env/lib/python3.7/site-packages/airflow/bin/cli.py", line 70, in <module> from airflow.www.app import (cached_app, create_app)
File "/Users/\*/env/lib/python3.7/site-packages/airflow/www/app.py", line 26, in <module> from flask_wtf.csrf import CSRFProtect
File "/Users/\*/env/lib/python3.7/site-packages/flask_wtf/__init__.py", line 17, in <module> from .recaptcha import \*
File "/Users/\*/env/lib/python3.7/site-packages/flask_wtf/recaptcha/__init__.py", line 2, in <module> from .fields import \*
File "/Users/\*/env/lib/python3.7/site-packages/flask_wtf/recaptcha/fields.py", line 3, in <module> from . import widgets
File "/Users/\*/env/lib/python3.7/site-packages/flask_wtf/recaptcha/widgets.py", line 5, in <module> from werkzeug import url_encode
ImportError: cannot import name 'url_encode' from 'werkzeug' (/Users/*/env/lib/python3.7/site-packages/werkzeug/__init__.py)
Jacob Thompson
fuente
Parece que tuve este mismo problema hoy y me preguntaba porque no hay cambios importantes en mi código que creo que arrojarán este tipo de error
alltej
Instalé el flujo de aire en una instancia tres días antes y estaba funcionando bien. De manera similar, lo instalé en otra instancia ... arroja el mismo error ...
Anidhya Bhatnagar

Respuestas:

23

Parecía ser un error de versión, las versiones más nuevas del paquete werkzeug ya no tienen el url_encode que está buscando el flujo de aire, la instalación de una versión inferior ( pip install werkzeug==0.16.0) resolvió el problema y el flujo de aire ahora se ejecuta sin fallar.

Jacob Thompson
fuente
1
Sí, usando werkzeug 1.0 (incluido con Flask) me dio este mismo error, volviendo a 0.16.0 lo arregló
Matty
1
Nice one @Jacob! Si desea obtener posibles actualizaciones de parches, use en su lugar pip install werkzeug==0.16.*...
Enrico M.
1
Genial @Jacob, tu respuesta me ahorró mucho tiempo, de lo contrario terminaré depurando lo mismo.
Anidhya Bhatnagar
0

Lo hemos arreglado en Airflow 1.10.9, instale la última versión:

pip install -U apache-airflow

o fijar Werkzeug ejecutando pip install werkzeug<1.0

kaxil
fuente