#python #linux #airflow
Вопрос:
Через сервер Linux я запускаю Airflow с Docker compose. Другие группы DAG, созданные с помощью скриптов .py, работают нормально. Другие сценарии python, создающие группы доступности баз данных, которые импортируют различные модули, будут работать нормально и отображаться в списке групп доступности баз данных.
Тем не менее, импортируя указанные ниже модули в Launch.py приводит к Broken DAG: [/usr/local/airflow/dags/ScanLaunchDemo.py] No module named 'tenable_io'
тому, что .
Как ни странно, Launch.py отлично работает в экземпляре Linux и в терминале python (ошибка «no tenable_io» не отображается). Похоже, что только воздушный поток не может «обнаружить» модуль ниже.
from tenable_io.client import TenableIOClient
from tenable_io.api.scans import ScanCreateRequest
from tenable_io.api.models import ScanSettings
Запуск списка pip3 покажет, что установлен tenable-io.
Спасибо за помощь, пипс
Ответ №1:
Если вы используете Docker Compose, то для того, чтобы сделать модуль доступным для воздушного потока, вам необходимо использовать пользовательский образ, в котором вы установили свои собственные дополнительные зависимости. Мы только что обновили документацию, чтобы было понятнее, зачем вам это нужно и как это сделать, включая примеры:
Ответ №2:
К счастью для меня, я переписал запрос API таким образом, чтобы для него не требовался модуль, который еще не был встроен в Airflow. Однако Джерек, похоже, прав в том, что для модулей, которые не устанавливаются в airflow, необходимо будет создать пользовательский образ.