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

AWS Translate代码报错PartialCredentialsError:缺失aws_access_key_id

问题原因及解决步骤

核心错误有两个:

  • .env文件重复定义了同一个键AWS_ACCESS_KEY,没有区分访问密钥ID和秘密访问密钥
  • 代码读取的变量名与AWS SDK识别的凭证规则不匹配,导致SDK无法获取完整凭证

步骤1:修正.env文件配置

把.env里的重复项改成正确的区分命名,两种可选方式:

方式一:匹配代码里的变量名

如果代码里用AWS_ACCESS_KEY和AWS_SECRET_KEY,则.env内容应为:

AWS_ACCESS_KEY=你的AWS访问密钥ID
AWS_SECRET_KEY=你的AWS秘密访问密钥

方式二:使用AWS SDK默认识别的标准变量名(更推荐)

boto3会自动读取这两个标准变量,无需在代码里手动传递:

AWS_ACCESS_KEY_ID=你的AWS访问密钥ID
AWS_SECRET_ACCESS_KEY=你的AWS秘密访问密钥

步骤2:调整代码的凭证加载逻辑

对应方式一的代码写法

确保正确读取自定义变量并传给Translate客户端:

from dotenv import load_dotenv
import os
import boto3

# 加载.env文件
load_dotenv()

# 读取自定义凭证变量
access_key = os.getenv('AWS_ACCESS_KEY')
secret_key = os.getenv('AWS_SECRET_KEY')

# 初始化Translate客户端
translate = boto3.client(
    'translate',
    aws_access_key_id=access_key,
    aws_secret_access_key=secret_key,
    region_name='你的AWS区域'  # 例如us-east-1
)

对应方式二的代码写法(更简洁)

boto3自动读取标准环境变量,无需手动传入:

from dotenv import load_dotenv
import boto3

load_dotenv()

# 直接初始化客户端,凭证自动加载
translate = boto3.client('translate', region_name='你的AWS区域')

额外注意点

  • 确认.env文件放在代码根目录,若路径不同需在load_dotenv()中指定完整路径(如load_dotenv('/Users/xxx/project/.env'))
  • 检查.env里的凭证值没有多余空格或引号
  • 绝对不要把.env文件提交到Git等版本控制系统,避免凭证泄露

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 14:09:59