airflow - 在本地安装气流的问题
问题描述
我在本地安装了气流,因为我正在气流(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'
谁能告诉我安装中是否缺少任何东西?
解决方案
由于您没有指定如何安装 Airflow,我假设您做了类似pip install apache-airflow>=2.0.0
. 如果您查看该环境中的 Python 依赖项,pip freeze
您将不会看到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。
推荐阅读
- javascript - 如何在多个函数调用中保留相同的随机数?
- javascript - 函数节点 js 的数组别名
- lua - [{n,{}}] 在 lua 中做了什么?
- python - 禁用键盘但不断收到事件
- android - 当移动应用程序处于后台(iOS 和 Android)时,这个持续的通话中/进行中栏是什么?
- python - 有效的工作域给出“socket.gaierror: [Errno -2] Name or service not known”
- git - 更改 git 远程 url 以包含用户名而不丢失分支跟踪信息
- mailkit - winautomation V8 中的 MailKit 不接受阿拉伯字母
- c++ - Why does my display function terminate the program?
- google-chrome - 如何将请求重新路由到 Google Chrome 上的本地覆盖?