【问题标题】:GCP Composer - ModuleNotFoundError: No module named 'airflow.providers.sftp'GCP Composer - ModuleNotFoundError:没有名为 \'airflow.providers.sftp\' 的模块
【发布时间】:2022-08-17 19:25:57
【问题描述】:

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

所以我在代码中导入了SFTPOperator 包。

但发生错误:

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

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

但没有工作.????

我的 GCP Composer 环境如下:

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

如何使用 SFTPOperator

    标签: sftp google-cloud-composer modulenotfounderror


    【解决方案1】:

    为此,您必须安装 sftp 包 pip install 'apache-airflow[sftp]' 。您可以检查气流组件在安装时的built-in and extras packages(因版本而异)。

    一旦你安装了它,你应该能够通过在你的 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
       )
    
       ...
    

    您还可以在气流 git hub 项目上找到一个模拟测试,它可以为您提供一些指导,请查看 link

    2022 年 17 月 8 日更新:正如 Diana 所评论的那样,Composer 有一个记录在案的方式来安装其组件,正如 link 中提到的那样。建议选择您的项目使用的作曲家版本,因为有版本 1 和版本 2 指南。

    【讨论】:

    • 你好@박현균,这回答了你的问题吗?
    • 我同意所有这些,除了你说可以安装包的方式。在本地,您会执行 pip install 命令,但对于作曲家,您需要按照此处的说明安装软件包:cloud.google.com/composer/docs/how-to/using/…
    • 同意!我已经用它更新了响应,我对 apache 气流/作曲家中的说明感到困惑。非常感谢戴安娜。
    猜你喜欢
    • 2019-03-28
    • 2022-01-07
    • 2022-08-19
    • 2017-12-14
    • 2020-12-10
    • 2021-09-02
    • 2020-10-10
    • 2022-01-06
    相关资源
    最近更新 更多