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

使用Poetry安装boto3、s3fs时依赖解析失败

解决Poetry安装boto3、pandas、s3fs的版本冲突问题

问题描述

使用pip可正常安装依赖:

pip install boto3 pandas s3fs

但执行Poetry安装命令时失败:

poetry add boto3 pandas s3fs

错误核心为版本依赖冲突:

因为没有匹配>2023.3.0,<2024.0.0的s3fs版本
且s3fs(2023.3.0)依赖aiobotocore(>=2.4.2,<2.5.0),因此s3fs(>=2023.3.0,<2024.0.0)需要aiobotocore(>=2.4.2,<2.5.0)。
又因为没有匹配>2.4.2,<2.5.0的aiobotocore版本
且aiobotocore(2.4.2)依赖botocore(>=1.27.59,<1.27.60),因此s3fs(>=2023.3.0,<2024.0.0)需要botocore(>=1.27.59,<1.27.60)。
同时boto3(1.26.91)依赖botocore(>=1.29.91,<1.30.0)
且没有匹配>1.26.91,<2.0.0的boto3版本,所以s3fs(>=2023.3.0,<2024.0.0)与boto3(>=1.26.91,<2.0.0)不兼容。
因此,由于engexploit-k8s-pod-operator-images同时依赖boto3(1.26.91)和s3fs(2023.3.0),版本解析失败。

解决方案

方案1:指定兼容的版本组合

手动选择botocore版本范围重叠的boto3和s3fs版本:

poetry add boto3==1.27.59 s3fs==2023.3.0 pandas

boto3 1.27.59依赖的botocore版本为1.27.59,正好满足s3fs 2023.3.0对botocore的要求(>=1.27.59,<1.27.60)。

方案2:升级s3fs到兼容更高botocore的版本

s3fs 2024.x版本已放宽对aiobotocore的依赖约束,可直接安装最新版本:

poetry add boto3 pandas s3fs@latest

Poetry会自动解析出兼容的版本组合。

方案3:手动修改pyproject.toml后更新锁文件

在pyproject.toml中调整依赖版本约束:

[tool.poetry.dependencies]
# 保留其他已有依赖
boto3 = "~1.27.59"
s3fs = "~2023.3.0"
pandas = "^2.0"

然后执行:

poetry lock --no-update
poetry install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:25:30