Apache Airflow DAG无法导入本地模块

fildred13:

我似乎不明白如何将模块导入到Apache Airflow DAG定义文件中。我希望这样做是为了能够创建一个库,例如,该库使声明具有相似设置的任务不再那么冗长。

这是我能想到的最简单的示例,它重复了该问题:我修改了气流教程(https://airflow.apache.org/tutorial.html#recap),以简单地导入模块并从该模块运行定义。像这样:

目录结构:

- dags/
-- __init__.py
-- lib.py
-- tutorial.py

tutorial.py:

"""
Code that goes along with the Airflow located at:
http://airflow.readthedocs.org/en/latest/tutorial.html
"""
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import datetime, timedelta

# Here is my added import
from lib import print_double

# And my usage of the imported def
print_double(2)

## -- snip, because this is just the tutorial code, 
## i.e., some standard DAG defintion stuff --

print_double 只是一个简单的def,它将您输入的任何内容乘以2,然后输出结果,但是显然这根本没有关系,因为这是导入问题。

我能够airflow test tutorial print_date 2015-06-01按照教程文档成功运行-dag运行,而且print_double成功。4按预期打印到控制台。一切都很好。

然后,我进入Web UI,并被招呼Broken DAG: [/home/airflow/airflow/dags/tutorial.py] No module named 'lib'取消暂停dag并尝试使用UI进行手动运行会导致状态为“正在运行”,但它永远不会成功或失败。它只是永远坐在“运行中”。我可以根据需要排队,但他们都只能处于“运行”状态。

我已经检查了气流日志,但没有在其中看到任何有用的调试信息。

那我想念什么呢?

病毒

再次添加sys路径对我有用,

import sys
sys.path.insert(0,os.path.abspath(os.path.dirname(__file__)))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Apache Airflow-触发/时间表DAG在完成时重新运行(文件传感器)

如何从github安装Apache Airflow

如何以Unix用户身份运行Apache Airflow DAG

如何在Apache Airflow中重命名DAG

Kubernetes与Apache Airflow的集成

在Apache Airflow DAG中使用AWS SES发送失败电子邮件

apache airflow为DAG文件夹中的所有脚本定义数据

Apache Airflow无法通过FTP / SFTP建立与远程主机的连接

Apache Airflow忽略失败的任务

Apache Airflow-DAG中有多少个任务太多?

Apache Airflow-无论以前的进程成功与否,都需要始终在dag中运行该进程

UTC午夜的Apache Airflow dag时间表

在iMac上安装Apache-Airflow-Airflow InitDB-ImportError:无法导入名称对象

Apache Airflow:airflow initdb导致“ ImportError:没有名为json的模块”

如何为Apache Airflow DAG定义超时?

Apache airflow:没有模块名称“ airflow”

Google Cloud Composer(Apache Airflow)无法访问日志文件

在DAG中使用boto3时,Apache airflow无法找到AWS凭证

管道无法在Pandas的Apache Airflow中工作

Apache Airflow的世界您好

Apache Airflow-无法在CentOS7上设置Airflow-

如何测试 apache-airflow

Airflow 无法识别 DAG 调度

通过 HTTP 的 Apache Airflow

AWS MWAA(托管 Apache Airflow);以编程方式启用 DAG

Apache Airflow - 即使定义了 start_date 和 schedule_interval,Dag 也不会启动

apache-airflow-backport-providers-google 无法安装 apache-airflow(1.10.12)

具有单个任务的 Apache Airflow DAG

Apache Airflow 徽标路径