包括天文学家气流的自定义代码
Including custom code to astronomer airflow
我正在使用 astronomer 的气流解决方案,我正在尝试从另一个存储库添加我自己的自定义代码。
我的爸爸:
from my_code.my_file import *
@dag(...)
def dag():
pass
我有一个操作管道,基本上将 my_code
复制到气流设置中的 include
目录中(有关详细信息,请参阅 quickstart guide)。
不幸的是,dag 导入失败
ModuleNotFoundError: No module named 'my_code'
这是 ops 脚本复制代码后 include 目录的样子:
.
├── include
│ └── my_code
│ └── my_file.py
关于如何在此处包含自定义代码的任何想法或文档链接?
编辑:
还有两点需要考虑:
- 业务逻辑代码需要与编排层保持无关
- IDE 不应索引
include
目录,因为它将包含重复代码(它是一个 monorepo)
尝试from include.my_code.my_file import *
。
编辑
或者您可以尝试将 include
文件夹添加到 Astronomer 提供的 Dockerfile 中的 PYTHONPATH,例如:ENV PYTHONPATH="${PYTHONPATH}:/usr/local/airflow/include"
.
我正在使用 astronomer 的气流解决方案,我正在尝试从另一个存储库添加我自己的自定义代码。
我的爸爸:
from my_code.my_file import *
@dag(...)
def dag():
pass
我有一个操作管道,基本上将 my_code
复制到气流设置中的 include
目录中(有关详细信息,请参阅 quickstart guide)。
不幸的是,dag 导入失败
ModuleNotFoundError: No module named 'my_code'
这是 ops 脚本复制代码后 include 目录的样子:
.
├── include
│ └── my_code
│ └── my_file.py
关于如何在此处包含自定义代码的任何想法或文档链接?
编辑:
还有两点需要考虑:
- 业务逻辑代码需要与编排层保持无关
- IDE 不应索引
include
目录,因为它将包含重复代码(它是一个 monorepo)
尝试from include.my_code.my_file import *
。
编辑
或者您可以尝试将 include
文件夹添加到 Astronomer 提供的 Dockerfile 中的 PYTHONPATH,例如:ENV PYTHONPATH="${PYTHONPATH}:/usr/local/airflow/include"
.