Tidak dapat menjalankan aliran udara apache setelah instalasi baru, kesalahan impor python

19

setelah instalasi baru menggunakan pip install apache-airflow, setiap upaya untuk menjalankan aliran udara diakhiri dengan kesalahan impor 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
sumber
Sepertinya saya mendapat masalah yang sama hari ini dan bertanya-tanya tentang hal itu karena tidak ada perubahan besar dalam kode saya yang saya pikir akan melempar kesalahan jenis ini
alltej
Saya memasang aliran udara pada instance tiga hari sebelumnya dan itu berfungsi dengan baik. Mirip dengan cara saya menginstalnya pada contoh lain ... itu melempar kesalahan yang sama ..
Anidhya Bhatnagar

Jawaban:

23

Tampaknya menjadi kesalahan versi, versi yang lebih baru dari paket werkzeug tidak lagi memiliki url_encode yang dicari aliran udara, menginstal versi yang lebih rendah ( pip install werkzeug==0.16.0) menyelesaikan masalah dan aliran udara sekarang berjalan tanpa gagal.

Jacob Thompson
sumber
1
Yap menggunakan werkzeug 1.0 (termasuk dengan Flask) memberi saya kesalahan yang sama, kembali ke 0.16.0 memperbaikinya
Matty
1
@Jacob bagus sekali! Jika Anda ingin mendapatkan pembaruan tambalan yang potensial, gunakan sebaliknya pip install werkzeug==0.16.*...
Enrico M.
1
Hebat @ Jacobs jawaban Anda menghemat banyak waktu saya yang lain saya akan berakhir debugging yang sama.
Anidhya Bhatnagar
0

Kami telah memperbaikinya di Airflow 1.10.9, silakan instal versi terbaru:

pip install -U apache-airflow

atau pin Werkzeug dengan menjalankan pip install werkzeug<1.0

Kaxil
sumber