gpt4 book ai didi

python - Airflow 相对导入外部/dag 目录

转载 作者:太空狗 更新时间:2023-10-29 21:45:18 53 4
gpt4 key购买 nike

我无法将通用代码移出 Airflow 使用的 dag 目录。我看过 airflow source并找到imp.load_source .

是否可以使用 imp.load_source 加载存在于 dag 目录之外的模块?在下面的示例中,这将从公共(public)目录导入 foo 或 bar。

── airflow_home
|──── dags
│ ├── dag_1.py
│ └── dag_2.py
├── common
├── foo.py
└── bar.py

最佳答案

只需在所有 3 个文件夹中添加 __init__.py 文件。它应该工作。事实上,我的文件夹结构中的每个文件夹都有 __init__.py。我可以运行代码并查看输出。

示例文件夹结构如下:

── airflow_home
├── __init__.py
|──── dags
│ ├── __init__.py
│ ├── dag_1.py
│ └── dag_2.py
├── common
├── __init__.py
├── foo.py
└── bar.py

dag_1.py代码可以是:

from stackoverflow.src.questions.airflow_home.common.bar import bar_test

def main():
bar_test()

main()

我正在从我的 pycharm 运行这段代码。你的airflow_home在我的pycharm中的文件夹路径是stackoverflow/src/questions/airflow_home/

bar.py代码是

def bar_test():
print "bar hara"

关于python - Airflow 相对导入外部/dag 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45070705/

53 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com