Я столкнулся с очень странной ошибкой при развертывании DAG в среде Composer Airflow.
Я создал пользовательский оператор со следующим импортом:
from exchangelib import DELEGATE, Account, Credentials, Message, FileAttachment, HTMLBody
Пользовательский оператор определен в файле с именем airflow_mail_operator.py, а группа DAG определена в файле с именем test_main.py.
Я получаю ошибку от веб-сервера воздушного потока и указывает ModuleNotFoundError: нет модуля с именем exchangengelib , даже если среда Composer уже представляет эту библиотеку.
Ошибка перестает отображаться, если я добавляю оператор импорта даже в файл DAG, и это звучит для меня очень странно!
После полной трассировки стека:
Traceback (most recent call last): File "/usr/local/lib/airflow/airflow/models/dagbag.py", line 243, in process_file m = imp.load_source(mod_name, filepath) File "/opt/python3.6/lib/python3.6/imp.py", line 172, in load_source module = _load(spec) File "<frozen importlib._bootstrap>", line 684, in _load File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/home/airflow/gcs/dags/dg_dags/test_main.py", line 5, in <module> from dg_dags.airflow_mail_operator import CustomEmailOperator File "/home/airflow/gcs/dags/dg_dags/airflow_mail_operator.py", line 5, in <module> from exchangelib import DELEGATE, Account, Credentials, Message, FileAttachment, HTMLBody ModuleNotFoundError: No module named 'exchangelib'
Сталкивался ли кто-нибудь (и, возможно, исправил) с подобной ошибкой?
Моя среда:
composer -1.10.0-airflow-1.10.6
python3
Заранее спасибо!