簡體   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