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'
然后,我尝试了几种方法:
- Getting exception "No module named 'airflow.providers.sftp'"
- 通过 composer pypi 包安装
apache-airflow-providers-sftp
但没用。
我的 GCP Composer 环境如下:
- 图片版本:composer-1.17.7-airflow-2.1.4
- python 版本:3
- 网络 VPC 原生:启用
如何使用 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。
我试图通过 GCP Composer Tasks 从 FTP 服务器的 txt 文件获取数据。
所以我在代码中导入了 SFTPOperator
包。
但发生错误:
ModuleNotFoundError: No module named 'airflow.providers.sftp'
然后,我尝试了几种方法:
- Getting exception "No module named 'airflow.providers.sftp'"
- 通过 composer pypi 包安装
apache-airflow-providers-sftp
但没用。
我的 GCP Composer 环境如下:
- 图片版本:composer-1.17.7-airflow-2.1.4
- python 版本:3
- 网络 VPC 原生:启用
如何使用 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。