我的气流DAG主要由PythonOperators组成,我想使用我的Python IDE调试工具来开发python“内部”气流。 -我依靠Airflow的数据库连接器,我认为将“气流”移出进行开发是很丑陋的。
我已经使用Airflow了一段时间,到目前为止,仅通过CLI进行了开发和调试。哪个开始变得烦人了。
是否有人知道设置PyCharm或其他IDE的好方法,使我在运行airflow test ..
时可以使用IDE的调试工具集?
我的气流DAG主要由PythonOperators组成,我想使用我的Python IDE调试工具来开发python“内部”气流。 -我依靠Airflow的数据库连接器,我认为将“气流”移出进行开发是很丑陋的。
我已经使用Airflow了一段时间,到目前为止,仅通过CLI进行了开发和调试。哪个开始变得烦人了。
是否有人知道设置PyCharm或其他IDE的好方法,使我在运行airflow test ..
时可以使用IDE的调试工具集?
参加聚会可能会有点晚,但也一直在寻找解决方案。希望能够调试尽可能接近“生产模式”的代码(因此在测试等情况下什么也没有)。
找到了“ Python Debug Server”形式的解决方案。 它的工作方式与此相反:您的IDE进行侦听,并且从远程脚本到编辑器之间建立了连接。
只需添加类型为“ Python Debug Server”的新运行配置。
您会看到一个屏幕,告诉您远程pip install pydevd-pycharm
。在同一页面上,您可以填写您的本地IP和一个端口,调试器应该在该端口上可用,以及可选的路径映射。
之后,只需将建议的两行代码添加到您希望调试会话开始的位置即可。
运行配置以激活侦听器,如果一切正常,则到达settrace
调用位置后,编辑器应立即中断。
编辑/注意:如果您停止编辑器中的配置,气流将继续执行该任务,请务必意识到这一点。
,这可能有点骇人听闻,但我发现了一种设置PyCharm的方法:
which airflow
-在我的情况下,这只是个管道test dag_x task_y 2019-11-19
这仅通过 SequentialExecutor 进行了验证,这可能很重要。
我必须为每个新的调试/开发任务在运行配置中更改测试参数,这很糟糕,但是到目前为止,这对于在“内部”气流环境内设置断点和单步执行代码非常有用。
,我调试airflow test dag_id task_id
,使用PyCharm在无业游民的计算机上运行。即使直接在本地主机上运行气流,您也应该能够使用相同的方法。
Pycharm's documentation on this subject应该向您展示如何创建适当的“ Python远程调试”配置。当您运行此配置时,它等待被您添加到某处的一些代码(例如,在您的一个操作员中)与之联系。然后,您可以正常进行调试,并在Pycharm中设置断点。