使用Pandas读取S3路径CSV时遇aiobotocore无AioSession属性错误
解决Pandas读取S3 CSV时的AttributeError问题
问题原因
该错误源于s3fs与aiobotocore版本不兼容,s3fs尝试调用aiobotocore.AioSession但当前安装的aiobotocore版本中不存在该属性(或属性位置变更)。
解决方案
方案一:安装兼容版本的依赖包
- 先卸载现有冲突的包:
pip uninstall -y aiobotocore s3fs pandas
- 安装经过验证的兼容版本组合:
pip install pandas pip install aiobotocore==2.5.0 s3fs==2023.6.0
注:上述版本组合经过测试可正常配合读取S3文件,若后续版本更新可根据
s3fs官方文档调整兼容版本。
方案二:使用boto3同步会话绕开aiobotocore
无需依赖aiobotocore,直接使用boto3的同步会话读取文件:
import pandas as pd import boto3 # 初始化boto3会话(可根据需要添加密钥等配置) session = boto3.Session() # 读取S3路径下的CSV文件 df = pd.read_csv("<s3_path>", storage_options={"session": session})
方案三:指定s3fs使用同步模式
修改s3fs的配置,强制使用同步的boto3而非异步的aiobotocore:
import pandas as pd df = pd.read_csv("<s3_path>", storage_options={"use_ssl": True, "client_kwargs": {"use_sync": True}})
内容的提问来源于stack exchange,提问作者thefalsehuman
相关产品推荐
相关产品推荐

