Composer Airflow - 没有名为 "exchangelib" 的模块

Composer Airflow - No module named "exchangelib"

我在将 DAG 部署到 Composer Airflow 环境时遇到了一个非常奇怪的错误。

我使用以下导入创建了自定义运算符:

from exchangelib import DELEGATE, Account, Credentials, Message, FileAttachment, HTMLBody

自定义运算符在名为 airflow_mail_operator.py 的文件中定义,DAG 在名为 test_main.py.

的文件中定义

我收到的错误来自 airflow 网络服务器并指出 ModuleNotFoundError: No module named 'exchangelib' 即使 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

提前致谢!

我的解决方案是通过更新底层 k8s 集群来强制更新 Composer 集群!