You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Airflow DAG报错ModuleNotFoundError:已在requirements.txt添加snowflake模块仍找不到

解决Apache Airflow中snowflake-connector-python模块找不到的问题

你遇到的错误:

Broken DAG: [/usr/local/airflow/dags/my_dag.py] Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/usr/local/airflow/dags/my_dag.py", line 12, in <module>
from snowflake.connector.pandas_tools import pd_writer
ModuleNotFoundError: No module named 'snowflake'

你已尝试的操作:

  • 确认requirements.txt文件中已包含该模块且格式正确
  • 重启Airflow调度器和Web服务器
  • 清除Airflow DAG缓存
  • 确认使用了正确的Python环境
  • 在正确环境中通过pip安装该模块

额外解决建议:

  1. 检查Airflow Worker的Python环境
    分布式部署场景下,调度器、Web服务器的Python环境可能和Worker不一致。登录Worker节点,执行pip list确认snowflake-connector-python是否存在,若缺失则在Worker的Python环境中重新安装:

    pip install snowflake-connector-python
    

    若使用虚拟环境,需先激活环境再执行安装命令。

  2. 验证requirements.txt的加载逻辑

    • 若用Airflow官方Docker镜像,确保requirements.txt放在指定目录,且容器启动时正确加载:要么在Dockerfile中添加安装命令,要么通过_PIP_ADDITIONAL_REQUIREMENTS环境变量挂载。示例Dockerfile命令:
      RUN pip install --no-cache-dir -r requirements.txt
      
    • 非Docker部署时,直接用Airflow使用的Python解释器测试导入:
      /path/to/airflow/python -c "import snowflake.connector.pandas_tools"
      
      若此处报错,说明环境确实未安装到位,重新安装即可。
  3. 排查模块安装权限与路径
    部分情况下pip install会因权限问题将模块安装到用户目录,导致Airflow进程无法访问。可以:

    • 用--user参数安装:
      pip install --user snowflake-connector-python
      
    • 检查模块安装路径:
      pip show snowflake-connector-python
      
      确认输出的Location路径在Airflow使用的Python的sys.path中,可通过以下命令查看sys.path:
      /path/to/airflow/python -c "import sys; print('\n'.join(sys.path))"
      
      若不在列表中,可设置PYTHONPATH环境变量添加该路径,或重新安装到正确位置。
  4. 用PythonVirtualenvOperator隔离环境
    若上述方法无效,可在DAG中使用PythonVirtualenvOperator创建独立虚拟环境执行任务,确保依赖安装正确:

    from airflow.operators.python import PythonVirtualenvOperator
    
    def snowflake_task():
        from snowflake.connector.pandas_tools import pd_writer
        # 编写你的任务逻辑
    
    snowflake_op = PythonVirtualenvOperator(
        task_id="snowflake_task",
        python_callable=snowflake_task,
        requirements=["snowflake-connector-python"],
        system_site_packages=False,
    )
    
  5. 强制清理安装缓存
    缓存可能导致模块无法正确加载,尝试强制重新安装并清除pip缓存:

    pip install --force-reinstall snowflake-connector-python
    pip cache purge
    

内容的提问来源于stack exchange,提问作者Nyk Casseano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 08:44:54