Airflow 浏览器 UI 未检测到导入的模块

Airflow Browser UI not detecting imported Module

通过 Linux 服务器,我 运行ning Airflow 与 Docker compose。使用 .py 脚本创建的其他 DAG 工作正常。其他 python 创建导入不同模块的 DAGS 的脚本将 运行 正常并显示在 DAG 列表中。

但是,在我的 Launch.py 中导入以下模块会导致 Broken DAG: [/usr/local/airflow/dags/ScanLaunchDemo.py] No module named 'tenable_io'

具有讽刺意味的是,Launch.py 运行 在 Linux 实例和 python 终端中完全正常('no tenable_io' 错误不显示)。似乎只有 Airflow 不能 'detect' 下面的模块。

from tenable_io.client import TenableIOClient
from tenable_io.api.scans import ScanCreateRequest
from tenable_io.api.models import ScanSettings

运行 pip3 列表将显示已安装 tenable-io。

感谢大家的帮助

如果您正在使用 Docker Compose,那么为了使模块可用于 airflow,您需要在安装了自己的附加依赖项的地方使用自定义映像。我们刚刚 更新了文档,使您需要它的原因和方法更加清楚,包括示例:

https://airflow.apache.org/docs/docker-stack/build.html

对我来说幸运的是,我重写了 API 请求,这样它就不需要 Airflow 中尚未内置的模块。然而,Jarek 似乎是正确的,对于未安装在气流中的模块,需要创建自定义图像。