出现这个错误是因为在Airflow 2中,BashOperator已经从airflow.operators
模块中移动到了airflow.operators.bash
模块中。
要解决这个问题,你需要使用正确的导入语句来引入BashOperator。
下面是一个示例代码,展示了如何正确导入BashOperator:
from airflow.models import DAG
from airflow.operators.bash import BashOperator
from datetime import datetime
default_args = {
'start_date': datetime(2021, 1, 1)
}
with DAG('my_dag', schedule_interval='@daily', default_args=default_args, catchup=False) as dag:
task1 = BashOperator(
task_id='task1',
bash_command='echo "Hello, World!"'
)
task2 = BashOperator(
task_id='task2',
bash_command='echo "Hello, Airflow!"'
)
task1 >> task2
请注意,这里使用了from airflow.operators.bash import BashOperator
来正确导入BashOperator。
如果你仍然遇到导入错误,请确保你的Airflow版本是2.x,并检查你的安装是否正确。
上一篇:Airflow 1.9.0正在排队,但任务没有运行。
下一篇:Airflow 2 - ModuleNotFoundError: 找不到名为 'airflow.operators.sensors' 的模块。