该错误通常是在DAG中引用的模块不存在,可能由于以下原因导致:
为了修复这个问题,需要进行以下操作:
python_path
参数来实现。例如:[core]
...
python_path = /usr/local/lib/python3.7/site-packages:/path/to/your/custom/modules
...
这个示例中,我们将Python模块路径修改为 /usr/local/lib/python3.7/site-packages 和 /path/to/your/custom/modules。这将允许Airflow的Python解释器能够访问这两个目录中的所有模块。
值得一提的是,在Airflow 2.1.0之后,DAG的模块解析方式发生了一些变化。如果您使用了相对导入来引用其他模块,可能会遇到 ModuleNotFound 的错误。您可以使用绝对导入或在 DAG 文件中添加 PYTHONPATH
环境变量来解决这个问题。例如:
import sys
sys.path.insert(0, "/path/to/your/custom/modules")
from my_module import MyOperator
这个示例中,我们向 sys.path 中添加了路径 /path/to/your/custom/modules,这样我们就可以使用相对导入来引用 my_module 模块了。