![](/img/trans.png)
[英]Getting exception "No module named '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'
然后,我嘗試了幾種方法:
apache-airflow-providers-sftp
但沒有用。
我的 GCP Composer 環境如下:
如何使用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.