答案 0 :(得分:1)
对于气流DAG,在导入自己的模块时,需要确保以下两项:
〜/ projects / data / airflow / teams / team_name / projects / default / dags / dag_names / dag_files.py
根源是气流,所以如果我将模块my_module放入
〜/ projects / data / airflow / teams / team_name / common
然后我需要使用
from teams.team_name.common import my_module
在您的情况下,如果根目录是 bi 的上层文件夹,并且将calc脚本放在bi/inbound_layer/test.py
中,则可以使用:
from bi.inbound_layer.test import calc
\__init\__.py
个文件,导入才能正常运行。路径中的每个文件夹中都应该有一个空文件\__init\__.py
。它指示此目录是气流包装的一部分。您可以使用 bi 下的touch \__init\__.py
(cli)和_inbound_layer_文件夹来创建空的__init\__.py
。答案 1 :(得分:1)
Airflow 默认将 Airflow 主目录中的 dags/, plugins/, and config/
目录添加到 PYTHONPATH
,因此您可以例如在 commons
文件夹下创建文件夹 dags
,在那里创建文件({{1 }})。假设脚本有一些类 (scriptFileName
),您想在 GetJobDoneClass
中导入,您可以这样做:
DAG
答案 2 :(得分:0)
我需要在ren.py
的顶部插入以下脚本:
import sys, os
from airflow.models import Variable
DAGBAGS_DIR = Variable.get('DAGBAGS_DIR')
sys.path.append(DAGBAGS_DIR + '/bi/inbound_layer/')
这样,我就可以使用当前的文件夹包。