You need to enable JavaScript to run this app. Python从GCP存储桶读Excel部署至Cloud Function出现ClientSession属性错误
优惠活动
大模型
产品
解决方案
定价
更多

Python从GCP存储桶读Excel部署至Cloud Function出现ClientSession属性错误

错误根因

该报错和pandas本身没有关联,是Google Cloud Function运行环境中依赖的aiohttp库与gcsfs库版本不兼容导致的:

读取Google Cloud Storage(GCS)上的Excel文件时,pandas会自动调用gcsfs库完成GCS资源读取,旧版本gcsfs依赖aiohttp的私有属性_connector,而aiohttp v3.8+版本调整了内部私有属性实现,移除了_connector相关定义,当ClientSession对象被销毁触发__del__方法时就会抛出该属性不存在的报错。
本地运行正常是因为本地环境的aiohttp和gcsfs版本刚好匹配,部署到GCF时平台自动拉取的依赖版本不匹配才会触发问题。

解决办法
  • 方案1:固定依赖兼容版本
    在项目的requirements.txt中添加如下版本声明,该组版本在GCF Python3.8运行环境下可正常运行:
aiohttp==3.8.4
gcsfs==2023.3.0
  • 方案2:升级适配版本
    直接将gcsfs升级到2023.6.0及以上的稳定版,该版本已经修复了对高版本aiohttp的兼容性问题,无需额外固定aiohttp版本。
  • 方案3:修改读取逻辑绕开异步调用
    显式调用gcsfs的同步接口读取文件流后再传入pandas,避免触发内部异步逻辑导致报错,示例代码:
import gcsfs
import pandas as pd

# 初始化GCS文件系统对象
fs = gcsfs.GCSFileSystem()
# 同步读取文件流
with fs.open("gs://你的存储桶路径/目标文件.xlsx", "rb") as file_obj:
    df = pd.read_excel(file_obj, engine="openpyxl")

内容的提问来源于stack exchange,提问作者user5711693

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 12:27:04