You need to enable JavaScript to run this app. Sagemaker inference.py用boto3上传文件到S3缺模块问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

Sagemaker inference.py用boto3上传文件到S3缺模块问题咨询

原因说明

SageMaker官方提供的推理容器默认没有预装boto3库,导入报错属于依赖缺失问题,并非平台禁止在inference.py中使用boto3。

解决方案

有两种常用的解决方式:

  • 方式一:在inference.py中动态安装依赖
    在导入boto3的代码之前,先添加boto3的安装逻辑:
import subprocess
import sys
subprocess.check_call([sys.executable, "-m", "pip", "install", "-q", "boto3"])

# 安装完成后再导入boto3
import boto3
  • 方式二:自定义推理镜像时预装
    如果使用自定义Docker镜像部署端点,可以直接在Dockerfile中添加依赖安装指令,后续无需每次运行时安装:
RUN pip install --no-cache-dir boto3
额外注意事项

代码修正

你当前的上传代码存在两处错误,安装完依赖后需要调整才能正常运行:

  1. bucket参数无需添加s3://前缀,直接填写存储桶的纯名称即可
  2. 你初始化的是s3 resource对象,但调用时用了未定义的s3_client变量,需要统一初始化逻辑,修正后示例如下:
import boto3
s3_client = boto3.client('s3')
# 替换为你的实际存储桶名称
bucket = 'your-bucket-name'
object_name = file_name
s3_client.upload_file(file_name, bucket, object_name)

权限配置

需要确保SageMaker端点绑定的IAM角色已经配置了目标S3存储桶的写入权限,否则会触发权限拒绝错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 12:24:03