airflow ImportError: attempted relative import with no known parent package
时间: 2023-07-07 21:34:30 浏览: 171
这个错误和上面提到的 Python 3 中的相对导入错误类似,也是由于在当前模块中使用了相对导入,但是没有找到相对导入的父级模块。
在 Airflow 中,这个错误通常出现在 DAG 文件中,因为 DAG 文件是在一个单独的 Python 模块中执行的。如果在 DAG 文件中使用相对导入,则会出现这个错误。
解决方法是使用绝对导入,或者在 DAG 文件中使用相对导入的语法。例如,如果您要从当前 DAG 文件中导入一个模块“mymodule”,则可以使用以下语法:
- 绝对导入:`from airflow.models import mymodule`
- 相对导入:`from . import mymodule`
请注意,在 DAG 文件中使用相对导入时,点号表示当前 DAG 文件所在的目录。如果您的 DAG 文件位于子目录中,则需要使用多个点号来表示父级目录,例如,如果您的 DAG 文件在目录`/path/to/dags/mydag.py`中,而您想要导入`/path/to/dags/utils/mymodule.py`,则可以使用以下相对导入语法:
```
from ..utils import mymodule
```
其中,`..`表示上一级目录。
阅读全文