我有一个Git存储库(除其他事项外)在airflow
目录中包含Airflow DAG。除了Airflow的安装目录外,我还有一个存储库的克隆。 airflow
配置变量指向Git中的AIRFLOW_HOME
目录。
我希望允许从存储库中外部 airflow
文件夹中列出的模块导入(请参见下面的结构)。
<repo root>
|_airflow
|_dags
|_dag.py
|_module1
|_module2
|_...
这样我就可以在dag.py
中进行
from module1 import Module1
当前,没有tricks似乎不可能像明确编辑sys.path
那样,这不是很优雅,必须在每个dag源文件中完成...
从module1
中制作可安装的软件包也是不可能的。
答案 0 :(得分:1)
从此处的讨论重写结论
广泛地,有2种可能的方法
通过更新PYTHONPATH
,使dag-definition-file解析过程可发现您的代码。再次,我们有以下选择
(a)更新PYTHONPATH
在系统级别using bashrc
/对等(一次又一次),或者对于当前bash会话仅更新export
the updated PYTHONPATH
(b)以编程方式update sys.path
在DAG定义文件的开头