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

Airflow运行报ModuleNotFoundError无法找到已安装的自定义包etl_package

Airflow自定义包导入报错排查方案

根因说明

报错核心原因是Airflow的webserver、scheduler、worker运行进程的Python搜索路径未识别到etl_package的存放路径,和DAG文件夹存放位置无关。Airflow官方模块可正常导入,是因为Airflow进程启动时会自动将自身安装路径加入Python搜索路径,不受DAG存放位置影响。

排查步骤

  • 第一步:验证Airflow运行时的Python环境信息
    在你的DAG中添加临时测试任务,打印当前运行环境的解释器路径和搜索路径,运行后查看任务日志确认配置:

    import sys
    from airflow.operators.python import PythonOperator
    
    def print_env_info():
        print("Python解释器路径:", sys.executable)
        print("Python搜索路径列表:", sys.path)
    
    # 加入到你的DAG任务列表中
    test_env = PythonOperator(
        task_id="test_python_env",
        python_callable=print_env_info
    )
    

    运行该任务后,检查日志中是否包含C:\Users\username\AppData\Roaming\Python\Python37\site-packages路径,以及当前Python解释器是否和你安装etl_package使用的解释器一致。

  • 第二步:检查PYTHONPATH变量生效范围
    如果你配置的是用户级别的PYTHONPATH环境变量,Airflow如果是作为系统服务/其他用户身份启动,将无法读取到该变量。请将路径添加到系统级别的PYTHONPATH变量中,修改完成后重启所有Airflow相关进程(webserver、scheduler、worker),环境变量修改后必须重启进程才能生效。

  • 第三步:通过Airflow配置文件添加搜索路径
    你也可以直接修改airflow.cfg配置文件中的python_path参数,直接指定自定义包的搜索路径:

    python_path = C:\Users\username\AppData\Roaming\Python\Python37\site-packages
    

    多路径可用逗号分隔,修改完成后同样需要重启所有Airflow进程。

  • 第四步:临时验证方案
    你可以直接在DAG文件的最开头,手动将路径加入Python搜索路径,快速验证问题:

    import sys
    sys.path.append("C:\\Users\\username\\AppData\\Roaming\\Python\\Python37\\site-packages")
    # 之后再写其他import代码
    

    如果添加后不再报错,即可确认是路径未被Airflow进程识别的问题,按前几步配置永久生效即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:27:02