如何在 Airflow 的 PythonVirtualenvOperator 中使用 requirements.txt 文件?
How to use requirements.txt file in Airflow's PythonVirtualenvOperator?
In Airflow 2.2.3, PythonVirtualenvOperator was updated 允许在要求参数中使用模板化 requirements.txt 文件。但是,我无法正确使用该参数。我正在寻求有关如何通过 Airflow 的 PythonVirtualenvOperator 正确使用 requirements.txt 文件的指导。
这是我的 /dags
格式:
dags
├── .airflowignore
├── daily.py
└── modules
└── monday
├── monday.py
└── requirements.txt
在daily.py中,我定义了我每天的DAG。我想引用 requirements.txt 的任务定义如下:
@task.virtualenv(requirements='modules/monday/requirements.txt')
def sync_board_items():
from modules.monday.monday import sync_board_items
import logging
logging.basicConfig(level=logging.INFO)
sync_board_items(board_id=XXXX, table=XXXX)
这似乎符合 GitHub 中描述的实现,因为 requirements 是一个字符串,而不是列表,并且它符合 *.txt
模板。但是,当任务运行时,我很快收到错误消息:
Executing cmd: /tmp/venvfn63dy3c/bin/pip install m o d u l e s / m o n d a y / r e q u i r e m e n t s . t x t
ERROR: Directory '/' is not installable. Neither 'setup.py' nor 'pyproject.toml' found.
这似乎表明 PythonVirtualenvOperator 正在将我的要求参数视为列表而不是字符串。换句话说,我做错了什么,PythonVirtualenvOperator 没有正确处理我的 requirements.txt 文件。我缺少什么或如何利用 Airflow 的 PythonVirtualenvOperator 中的 requirements.txt 文件?
该功能仅适用于 Airflow>=2.3.0
,不适用于 2.2.3
目前2.3.0
正在测试中。 2.3.0b1
可通过 pip 获得。
如果您想在 2.2.3 中使用此功能,您需要通过向后移植 PR 中的代码来创建自定义运算符。
使用 PR 和实用程序中的代码创建 MyPythonVirtualenvOperator
在 2.2.3
中应该可以正常工作
In Airflow 2.2.3, PythonVirtualenvOperator was updated 允许在要求参数中使用模板化 requirements.txt 文件。但是,我无法正确使用该参数。我正在寻求有关如何通过 Airflow 的 PythonVirtualenvOperator 正确使用 requirements.txt 文件的指导。
这是我的 /dags
格式:
dags
├── .airflowignore
├── daily.py
└── modules
└── monday
├── monday.py
└── requirements.txt
在daily.py中,我定义了我每天的DAG。我想引用 requirements.txt 的任务定义如下:
@task.virtualenv(requirements='modules/monday/requirements.txt')
def sync_board_items():
from modules.monday.monday import sync_board_items
import logging
logging.basicConfig(level=logging.INFO)
sync_board_items(board_id=XXXX, table=XXXX)
这似乎符合 GitHub 中描述的实现,因为 requirements 是一个字符串,而不是列表,并且它符合 *.txt
模板。但是,当任务运行时,我很快收到错误消息:
Executing cmd: /tmp/venvfn63dy3c/bin/pip install m o d u l e s / m o n d a y / r e q u i r e m e n t s . t x t
ERROR: Directory '/' is not installable. Neither 'setup.py' nor 'pyproject.toml' found.
这似乎表明 PythonVirtualenvOperator 正在将我的要求参数视为列表而不是字符串。换句话说,我做错了什么,PythonVirtualenvOperator 没有正确处理我的 requirements.txt 文件。我缺少什么或如何利用 Airflow 的 PythonVirtualenvOperator 中的 requirements.txt 文件?
该功能仅适用于 Airflow>=2.3.0
,不适用于 2.2.3
目前2.3.0
正在测试中。 2.3.0b1
可通过 pip 获得。
如果您想在 2.2.3 中使用此功能,您需要通过向后移植 PR 中的代码来创建自定义运算符。
使用 PR 和实用程序中的代码创建 MyPythonVirtualenvOperator
在 2.2.3