You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Airflow导入GCS相关库遇protobuf版本冲突,求助解决方法

解决Airflow GCS库导入时的protobuf版本冲突问题

我要创建Airflow DAG实现文件与云存储的传输,导入以下GCS相关库时出现版本冲突错误:

from airflow.providers.google.cloud.operators.gcs import GCSCreateBucketOperator, GCSDeleteBucketOperator
from airflow.providers.google.cloud.operators.gcs import GCSCreateBucketOperator
from airflow.providers.google.cloud.transfers.gcs_to_local import GCSToLocalFilesystemOperator
from airflow.providers.google.cloud.transfers.local_to_gcs import LocalFilesystemToGCSOperator

错误信息如下:

pkg_resources.ContextualVersionConflict: (protobuf 4.21.9 (/opt/anaconda3/lib/python3.9/site-packages), Requirement.parse('protobuf<4.0.0dev'), {'google-cloud-secret-manager'})

我已经尝试执行 pip install googleapis-common-protos --upgrade,但问题仍未解决。

可行解决方案

1. 降级protobuf到兼容版本

直接安装符合google-cloud-secret-manager要求的protobuf版本,比如3.x系列的稳定版:

pip install protobuf==3.20.3

这个版本既满足<4.0.0dev的要求,也能兼容Airflow GCS相关库的依赖。

2. 用虚拟环境隔离依赖

避免全局环境的依赖冲突,创建独立虚拟环境安装所需包:

# 创建虚拟环境
python -m venv airflow-gcs-env

# Linux/macOS激活环境
source airflow-gcs-env/bin/activate

# Windows激活环境
airflow-gcs-env\Scripts\activate

# 安装Airflow及GCS提供者
pip install apache-airflow
pip install apache-airflow-providers-google

虚拟环境会自动安装所有兼容的依赖版本,不会影响系统全局的包。

3. 更新google-cloud-secret-manager

部分新版本的google-cloud-secret-manager已经放宽了protobuf的版本限制,尝试更新该包:

pip install google-cloud-secret-manager --upgrade

更新后如果它的依赖要求不再限制protobuf<4.0.0,就能和现有版本兼容。

问题原因

这个错误是依赖版本不兼容导致的:google-cloud-secret-manager(Airflow GCS提供者间接依赖它)要求protobuf版本低于4.0.0,但当前系统中安装的是4.21.9,两者冲突。升级googleapis-common-protos无法解决问题,因为这个包和protobuf是独立的依赖,不会调整protobuf的版本。

内容的提问来源于stack exchange,提问作者Ahmet Buğra BUĞA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 00:10:14