У меня есть отдельная папка со всеми необходимыми для запуска модулями, и я добавляю ее в среду запуска воздушного потока.
PATH_MODULES = "/home/airflow-worker-1/airflow_modules/"
sys.path += [ PATH_MODULES ]
Таким образом, я могу импортировать любые функции в этих папках (при условии, что они имеют __init__.py
, потому что они обрабатываются как пакеты.
airflow_modules
|_ code_repository_1
|_ code_repository_2
|_ code_repository_3
|_ file_1.py
|_ config.py
Итак, в вашем коде DAG вы используете:
from code_repository_1.data_cleaning import clean_1
from code_repository_2.bigquery_operations import operation_1
Следует иметь в виду, что поскольку репозитории обрабатываются как проекты, так что если вам необходимо file_1.py
импортировать переменную из config.py
, то вы можете использовать относительный импорт с from .config import variable_1
.