我在本地安装了气流,因为我正在气流 (2.0.0) 中测试 sftp 操作符。当我尝试运行此代码时
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'
谁能告诉我我的安装中是否遗漏了什么?
答案 0 :(得分:2)
由于您没有指定 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。