WSL(Ubuntu)本地安装Apache Airflow 2.2.3兼容性问题求助
解决WSL Ubuntu中Apache Airflow 2.2.3安装问题
核心前提:用虚拟环境隔离依赖
不同Airflow版本的依赖差异极大,必须用虚拟环境避免全局依赖冲突,这是解决所有问题的基础:
# 安装venv工具(如果未安装) sudo apt update && sudo apt install python3-venv -y # 创建虚拟环境 python3 -m venv airflow-2.2.3-venv # 激活虚拟环境 source airflow-2.2.3-venv/bin/activate
1. 解决ModuleNotFoundError: No module named 'attrs'
你安装的attrs可能未进入虚拟环境,或版本与Airflow 2.2.3不兼容:
- 先检查虚拟环境内的attrs安装情况:
pip list | grep attrs - 如果无输出或版本不符,直接安装Airflow 2.2.3兼容的attrs版本:
pip install attrs==21.4.0
2. 解决依赖包兼容性问题(如apache-airflow-providers-http)
Airflow 2.2.3与高版本providers不兼容,必须安装对应版本:
- 对于apache-airflow-providers-http,适配2.2.3的最高稳定版本是
3.2.0,执行安装:pip install apache-airflow-providers-http==3.2.0 - 安装Airflow时必须用官方约束文件锁定所有依赖版本,避免自动拉取高版本包:
(先从Airflow官网下载对应2.2.3版本的约束文件到本地,命名为constraints-2.2.3.txt)pip install apache-airflow==2.2.3 --constraint ./constraints-2.2.3.txt
3. 解决权限拒绝错误
权限问题通常源于Airflow家目录无读写权限,或用sudo执行命令导致权限混乱:
- 不要用
sudo执行任何airflow命令,会破坏虚拟环境依赖关联 - 手动设置Airflow家目录权限:
# 指定Airflow家目录(可自定义路径) export AIRFLOW_HOME=~/airflow # 创建目录并设置权限 mkdir -p $AIRFLOW_HOME chmod -R 755 $AIRFLOW_HOME # 若目录所有者为root,修正权限 sudo chown -R $USER:$USER $AIRFLOW_HOME - 之后再执行数据库初始化:
airflow db init
完整验证步骤
- 确保虚拟环境处于激活状态
- 执行
pip list检查所有依赖版本是否符合2.2.3要求 - 重新执行
airflow db init,若仍报错,检查输出中的具体缺失包或权限信息,针对性处理
内容的提问来源于stack exchange,提问作者matiheilen
相关产品推荐
相关产品推荐

