Nie można uruchomić przepływu powietrza Apache po nowej instalacji, błąd importu Pythona

19

po nowej instalacji za pomocą pip install apache-airflow, wszelkie próby uruchomienia przepływu powietrza kończą się błędem importu pytona:

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
źródło
wygląda na to, że dostałem dzisiaj ten sam problem i zastanawiałem się nad tym, bo nie ma większych zmian w moim kodzie, które, jak sądzę, spowodują ten typ błędu
alltej
Zainstalowałem przepływ powietrza na instancji trzy dni wcześniej i działało dobrze. W podobny sposób zainstalowałem go w innej instancji ... generuje ten sam błąd ..
Anidhya Bhatnagar

Odpowiedzi:

23

Wydawało się, że to błąd wersji, nowsze wersje pakietu werkzeug nie mają już kodu url_encode, którego szuka przepływ powietrza, zainstalowanie niższej wersji ( pip install werkzeug==0.16.0) rozwiązało problem, a przepływ powietrza działa teraz bezawaryjnie.

Jacob Thompson
źródło
1
Tak, używając werkzeug 1.0 (dołączony do Flask) dał mi ten sam błąd, cofając się do 0.16.0 naprawiłem go
Matty
1
Nice one @Jacob! Jeśli chcesz uzyskać potencjalne aktualizacje łat, użyj zamiast tego pip install werkzeug==0.16.*...
Enrico M.
1
Świetnie @Jacob, twoja odpowiedź pozwoliła mi zaoszczędzić dużo czasu, bo inaczej skończę z debugowaniem tego samego.
Anidhya Bhatnagar
0

Naprawiliśmy to w Airflow 1.10.9, zainstaluj najnowszą wersję:

pip install -U apache-airflow

lub przypnij Werkzeug, uruchamiając pip install werkzeug<1.0

kaxil
źródło