繁体   English   中英

GCP Composer - ModuleNotFoundError:没有名为“airflow.providers.sftp”的模块

[英]GCP Composer - ModuleNotFoundError: No module named 'airflow.providers.sftp'

我试图通过 GCP Composer Tasks 从 FTP 服务器的 txt 文件中获取数据。

所以我在代码中导入SFTPOperator package 。

但发生错误:

ModuleNotFoundError: No module named 'airflow.providers.sftp'

然后,我尝试了几种方法:

但没有用。

我的 GCP Composer 环境如下:

  • 图片版本:composer-1.17.7-airflow-2.1.4
  • python 版本:3
  • 网络 VPC 原生:启用

如何使用SFTPOperator

为此,您必须安装 sftp package, pip install 'apache-airflow[sftp]' 您可以查看 airflow 组件安装时的内置和附加包(因版本而异)。

一旦你安装了它,你应该能够通过在你的 DAG 中导入操作符来使用SFTPOperator

from airflow.providers.sftp.operators.sftp import SFTPOperation,SFTPOperator

with DAG(...) as dag:

   upload_op = SFTPOperator(
    task_id="test_sftp",
    ssh_conn_id="ssh_default",
    local_filepath="/tmp/file.txt",
    remote_filepath="/tmp/tmp1/tmp2/file.txt",
    operation=SFTPOperation.GET, 
    dag=dag
   )

   ...

您还可以在 airflow git 集线器项目上找到可以为您提供一些指导的模拟测试,请查看此链接

2022 年 8 月 17 日更新:正如 Diana 所评论的,Composer 有一个文档化的方式来安装其组件,如此链接中所述。 建议选择您的项目使用的作曲家版本,因为有版本 1 和版本 2 指南。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM