![](/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.