当我在 DAG 文件夹中导入模块时出现 ModuleNotFoundError

时间:2021-05-21 20:38:35

标签: python module airflow

我使用官方掌舵图安装了气流。我的 dag 位于 GitHub 存储库中并具有以下结构:

dags
 |-directory
 |  |-test.py
 |-my_dag.py

当我尝试在我的 dag 中导入测试时,我得到 ModuleNotFoundError: No module named 'test'

from airflow import DAG
from directory import test

with DAG(...) as dag:

    ...

但奇怪的是,如果我在函数内部进行导入,我不会出错并且能够使用导入的模块

from airflow import DAG
from airflow.operators.python import PythonOperator

def my_function():
    from directory import test
    *** Do something with test ***

with DAG(...) as dag:

    task = PythonOperator(
        task_id="task",
        python_callable=my_function
    )
    
    ...

我知道这与路径有关,但我无法解决此问题。 由于我的 dags 位于 /opt/airflow/dags/repo/dags,我尝试添加

sys.path.insert(0, '/opt/airflow/dags/repo/dags')

在我的 dag 文件的顶部,但它没有帮助。我也尝试将此路径添加到 PYTHONPATH,但没有成功。

有谁知道我的错误在哪里?

0 个答案:

没有答案