MWAA Airflow 2.2.2中'snowflake'模块缺失报错求助
问题
在MWAA Airflow 2.0.2环境中使用snowflake.connector连接Snowflake一切正常,升级到2.2.2版本并新建环境后,执行相同代码抛出ModuleNotFoundError: No module named 'snowflake'。
当前requirements.txt配置:
apache-airflow==2.2.2 apache-airflow-providers-snowflake==2.3.0 snowflake-connector-python==2.7.0 snowflake-sqlalchemy==1.2.4 pandas==1.4.3
原2.0.2版本的requirements.txt:
apache-airflow==2.0.2 snowflake-connector-python
错误详情:
File "/usr/local/airflow/dags/shared/modules/connect_to_snowflake.py", line 11, in <module> import snowflake.connector as sf ModuleNotFoundError: No module named 'snowflake'
另外无法查看CloudWatch日志,也没找到Airflow 2.0.2到2.2.2间Snowflake相关的变更记录。
解决步骤
删除
apache-airflow显式依赖
MWAA会自带对应版本的Airflow,手动指定版本会引发依赖冲突,导致snowflake-connector-python无法正常安装。修改requirements.txt,移除apache-airflow==2.2.2这一行。调整后的
requirements.txt示例
apache-airflow-providers-snowflake==2.3.0 snowflake-connector-python==2.7.0 snowflake-sqlalchemy==1.2.4 pandas==1.4.3
排查依赖安装情况
- 若能恢复CloudWatch日志访问,查看环境初始化阶段的日志,确认
snowflake-connector-python是否安装成功 - 在DAG中添加测试代码,打印已安装包列表,验证依赖是否存在:
import pkg_resources print([pkg.key for pkg in pkg_resources.working_set])
- 若能恢复CloudWatch日志访问,查看环境初始化阶段的日志,确认
检查环境权限
确保MWAA执行角色拥有访问S3依赖存储的权限,以及访问PyPI的网络权限,避免依赖安装失败。
内容的提问来源于stack exchange,提问作者Rohit Londhe
相关产品推荐
相关产品推荐

