Airflow 2.1.4虚拟环境中simple-dag-editor插件出现重复条目问题求助
可能的原因
从你描述的情况来看,这个重复插件的问题大概率和虚拟环境下Airflow的包路径加载逻辑有关,而非插件本身的问题,具体可能有以下几点:
- 虚拟环境路径重复加载:Airflow在虚拟环境中运行时,
sys.path可能包含了重复的包路径(比如同时加载了虚拟环境的site-packages和系统全局的site-packages,或者虚拟环境的路径被添加了两次),导致插件的EntryPoint被扫描了两次。 - 旧版本Airflow的加载bug:Airflow 2.1.4是2021年的旧版本,在虚拟环境场景下可能存在EntryPoint扫描的逻辑漏洞,导致同一个插件的注册信息被重复识别。
- 安装残留问题:插件安装过程中可能在虚拟环境中留下了重复的EntryPoint配置文件,触发Airflow重复加载插件。
解决步骤
按以下顺序尝试操作,一般前几步就能解决问题:
确认Airflow运行环境的正确性
先确保你确实在虚拟环境中运行Airflow,执行命令检查:which airflow输出应该指向虚拟环境的
bin目录(比如/opt/airflow/venv/bin/airflow)。如果不是,说明你误用了系统全局的Airflow,需要重新激活虚拟环境:source /opt/airflow/venv/bin/activate检查Python路径是否存在重复项
运行以下命令查看Airflow使用的Python路径列表:airflow python -c "import sys; print('\n'.join(sys.path))"重点检查是否有重复的
site-packages路径,尤其是包含simple-dag-editor的目录。如果有重复,排查是否是airflow.cfg中设置了额外的PYTHONPATH,或者虚拟环境激活脚本存在路径重复添加的问题。清理并重新安装插件
先彻底卸载插件并清理pip缓存,再重新安装:pip uninstall -y simple-dag-editor pip cache purge pip install simple-dag-editor安装完成后再次运行
airflow plugins查看重复条目是否消失。检查Airflow插件目录配置
打开airflow.cfg,查看plugins_folder配置项,确保它只指向一个目录,且该目录下没有手动放置的simple_dag_editor插件文件——因为Airflow会同时扫描EntryPoint和plugins_folder下的插件,如果目录里有手动复制的插件,就会和EntryPoint加载的版本重复。尝试升级Airflow版本
如果前面的步骤都无效,考虑升级Airflow到较新的稳定版(比如2.6.x或2.7.x),旧版本的虚拟环境插件加载bug可能已经被修复:pip install --upgrade apache-airflow==2.6.3 pip install simple-dag-editor
验证
完成操作后,运行airflow plugins查看插件列表,同时刷新Airflow门户的Admin栏目,确认重复条目是否已消失。
内容的提问来源于stack exchange,提问作者Eric Kong

