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

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

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

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

但发生错误:

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

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

但没用。

我的 GCP Composer 环境如下:

如何使用 SFTPOperator

为此你必须安装 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
   )

   ...

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