Airflow 气流:错误:无法识别的参数-气流计划程序错误

Airflow 气流:错误:无法识别的参数-气流计划程序错误,airflow,Airflow,我创建了一个DAG,如下所示: args = { 'owner': 'airflow', 'start_date': datetime(2018, 12, 30), 'retries': 5, 'retry_delay': timedelta(minutes=30) } dag = DAG( dag_id='TEST', default_args=args, schedule_interval=timedelta(minutes=30)

我创建了一个DAG,如下所示:

args = {
    'owner': 'airflow',
    'start_date': datetime(2018, 12, 30),
    'retries': 5,
    'retry_delay': timedelta(minutes=30)
}


dag = DAG(
    dag_id='TEST',
    default_args=args,
    schedule_interval=timedelta(minutes=30),
    max_active_runs=1,
    catchup=False)

task_op = DummyOperator(task_id='task', dag=dag)
将其保存为
my_test.py
并上载到DAG文件夹

从UI手动启动DAG。DAG已排队,但任务立即失败。任务没有日志,但计划程序日志显示

usage: airflow [-h]
               {resetdb,render,variables,connections,pause,task_failed_deps,version,trigger_dag,initdb,test,unpause,dag_state,run,list_tasks,backfill,list_dags,kerberos,worker,webserver,flower,scheduler,task_state,pool,serve_logs,clear,upgradedb}
               ...
airflow: error: unrecognized arguments: my_test.py
我以前从未遇到过这种情况。有什么问题

有一个类似的问题,但完全不同。这里的解决方案与此无关


请告知此处的问题是什么

我认为您应该
grep-r'ArgumentParser'path/to/dags_文件夹
,以确认它与您发现的其他问题和答案不同。如果没有更多的上下文,这条消息似乎不会由计划的dag_运行在调度程序的日志中生成,而是由dagbag的dag解析循环生成

我这样说是因为您与下面添加的导入共享的DAG在我的1.10安装中正常工作

from airflow.models import DAG
from airflow.operators.dummy_operator import DummyOperator
from datetime import datetime, timedelta
它也可能值得一看:目录名中的空格导致这种异常;我不认为这是发生在你身上的事,但值得排除。此外,报告似乎显示,在v1.7中,错误的前几行记录了失败的完整命令,如:

命令“气流运行清理测试选择用户2016-08-03T18:20:38.308518——本地-sd DAGS\u文件夹/test DAG/test.py”返回非零退出状态2
气流:错误:无法识别的参数:DAG/test.py
[2016-08-03 18:39:54971:错误/主进程]任务气流执行器芹菜执行器执行命令[624cf49c-e765-468e-9227-fd2941ddb779]引发意外:气流异常(“芹菜命令失败”)


它显示在v1.9中,失败的原始命令输出在
气流:错误:无法识别的参数
行下方。

这是哪个执行器?Airflow计划一个命令,如
Airflow run dag_id task_id
,除非您将dag或任务命名为
my_test.py
,否则该任务看起来不应该在命令本身中。@dlamblin localexeccutor。这不是我的第一次。其他一切都在我的机器上工作。由于某种原因,这个失败了,我不知道为什么。你有堆栈跟踪吗?我认为它是由:或L32抛出的,这意味着它是在核心ArgumentParser模块中实现的。我想,在重新抛出之前,在输出当前参数的那些行周围进行一次尝试捕捉,您会发现这很有用。@dlamblin没有跟踪日志。该任务从未创建日志。问题的唯一迹象来自airflow-scheduler.err,它显示了我发布的消息。没别的了,我删除了DAG。用新的文件名和新的dag_id重新创建了它,现在同样的代码可以工作了。我想这是一种奇怪的气流failure@Luis很高兴听到事情解决了;有点令人不安的是,我们不知道它为什么会发生。好吧,气流回购充满了错误报告,所以即使我可以再次复制它,我怀疑它是否会被修复。但是,我可以建议修复写入日志的错误。显示
气流:错误:无法识别的参数:my_test.py
不够。。同时显示airflow实际尝试执行的命令有助于解决这个问题。也许你可以在社区中施加一些条件来应用这样的修复。@Luis从我链接到答案的几个Bug报告来看,失败的原始命令应该记录在你摘录的下面或上面。哦,我明白了,那只是芹菜遗嘱执行人,不是本地遗嘱执行人。让我看看它是否能被普及。@dlambin你能想出它为什么会发生,以及它是否会被气流固定吗?