我无法将通用代码移至气流使用的 dag 目录之外。我看过气流源 https://github.com/apache/incubator-airflow/blob/4f20f607764bb3477419321b5dfd0c53ba1db3c0/airflow/models.py#L272并发现imp.load_source https://docs.python.org/2/library/imp.html#imp.load_source.
是否可以使用imp.load_source
加载 dag 目录之外存在的模块?在下面的示例中,这将从公共目录导入 foo 或 bar。
── airflow_home
|──── dags
│ ├── dag_1.py
│ └── dag_2.py
├── common
├── foo.py
└── bar.py
只需添加__init__.py
所有 3 个文件夹中的文件。它应该有效。
事实上我的文件夹结构中的每个文件夹都有__init__.py
。我可以运行代码并查看输出。
示例文件夹结构如下:
── airflow_home
├── __init__.py
|──── dags
│ ├── __init__.py
│ ├── dag_1.py
│ └── dag_2.py
├── common
├── __init__.py
├── foo.py
└── bar.py
and dag_1.py代码可以是:
from stackoverflow.src.questions.airflow_home.common.bar import bar_test
def main():
bar_test()
main()
我正在运行这段代码pycharm
.
Your airflow_home
我的pycharm中的文件夹路径是stackoverflow/src/questions/airflow_home/
And bar.py code is
def bar_test():
print "bar hara"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)