boto3客户端(v.1.4.8)中Comprehend类无法使用求助
解决boto3 v1.4.8调用AWS Comprehend失败的问题
这个问题我之前碰到过,核心原因很明确:你使用的boto3 1.4.8版本太老旧,还没有加入对AWS Comprehend服务的支持。AWS Comprehend在2017年正式推出,而boto3的早期版本(比如1.4.8)的内置服务列表里还没包含这个服务,所以才会抛出"Valid service names are: acm,..."的异常。
下面是具体的排查和解决步骤:
升级boto3到支持Comprehend的版本
直接通过pip升级到最新稳定版即可,执行命令:pip install --upgrade boto3如果你的环境有版本兼容需求,也可以升级到最早支持Comprehend的版本(经查询,boto3 1.5.0及以上版本开始支持Comprehend),命令示例:
pip install boto3>=1.5.0同步升级botocore(可选但推荐)
boto3依赖botocore提供服务定义,有时候单独升级boto3可能不够,建议同时升级botocore:pip install --upgrade botocore验证升级后的服务支持情况
升级完成后,可以用以下代码确认Comprehend是否已在支持列表中:import boto3 session = boto3.Session() print("comprehend" in session.get_available_services())如果输出
True,说明版本已经支持,再重新调用Comprehend客户端应该就能正常工作了。
另外额外提醒:升级后别忘了确认你的AWS IAM角色/用户拥有Comprehend相关的权限(比如comprehend:DetectSentiment等),不过当前的报错是服务名不合法,所以权限问题是后续需要排查的点,先解决版本问题即可。
内容的提问来源于stack exchange,提问作者Sleneau
相关产品推荐
相关产品推荐

