Mac本地安装Apache Airflow失败求助:pendulum调用报错
解决Airflow运行时pendulum.tz.timezone调用错误的方案
方案一:重建虚拟环境,严格按官方依赖安装
- 删除现有虚拟环境:
rm -rf venv - 重新创建并激活Python3.12虚拟环境:
python3.12 -m venv venv source venv/bin/activate - 安装Airflow时严格使用官方对应版本的约束规则,避免依赖冲突:
注:约束文件可从Airflow官方对应版本的发布资源中获取,不要单独安装pendulum等依赖包。AIRFLOW_VERSION=2.10.0 PYTHON_VERSION="3.12" # 确保使用Airflow官方提供的对应版本约束文件进行安装 pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint constraints-${AIRFLOW_VERSION}-${PYTHON_VERSION}.txt
方案二:修复现有环境的pendulum版本冲突
如果不想重建环境,直接强制安装Airflow兼容的pendulum版本:
- 执行以下命令安装指定版本的pendulum:
pip install pendulum==2.1.2 --force-reinstall - 验证修复效果:
若输出python -c "import pendulum; print(pendulum.tz.timezone('UTC'))"<Timezone [UTC]>,说明pendulum已恢复正常,可重新运行Airflow命令。
问题根源
该错误是由于pendulum版本不兼容导致:Airflow 2.10.0针对Python3.12有明确的依赖版本要求,若你单独安装了更高版本的pendulum,会导致pendulum.tz.timezone从可调用函数变为模块对象,从而触发TypeError: 'module' object is not callable。严格遵循官方约束安装可避免此类依赖冲突。
内容的提问来源于stack exchange,提问作者Octav1an888
相关产品推荐
相关产品推荐

