在本地安装气流的问题

Issues installing airflow locally

我在本地安装了 airflow,因为我正在 airflow (2.0.0) 中测试 sftp operator。当我尝试运行宁这个代码

from airflow.providers.sftp.operators import sftp_operator
from airflow import DAG
import datetime

dag = DAG(
'test_dag',
start_date = datetime.datetime(2020,1,8,0,0,0),
schedule_interval = '@daily'
)

get_operation = SFTPOperator(
            task_id="operation",
            ssh_conn_id="ssh_default",
            local_filepath="route_to_local_file",
            remote_filepath="remote_route_to_copy",
            operation="get",
            dag=dag
            )

get_operation

当我 运行 此代码 python 代码时,我收到此错误。

Traceback (most recent call last):
File "test_dags.py", line 1, in <module>
    from airflow.providers.sftp.operators import sftp_operator
ModuleNotFoundError: No module named 'airflow.providers.sftp'

谁能告诉我安装中是否遗漏了什么?

由于您没有指定安装 Airflow 的方式,我假设您做了 pip install apache-airflow>=2.0.0 之类的操作。如果您使用 pip freeze 查看该环境中的 Python 依赖项,您将看不到 apache-airflow-providers-sftp 因为从版本 2 开始,Airflow 将其功能提取到提供程序包中,其中绝大多数需要手动安装,例如:pip install apache-airflow-providers-sftp。现在它应该工作了。支持文档 https://airflow.apache.org/docs/apache-airflow-providers/packages-ref.html#apache-airflow-providers-sftp.