Python导入boto3错误:无法导入名称ClientError

Jia*_*Cao 1 python amazon-web-services boto3

我正在尝试将AWS Simple Email Service与Python结合使用。我遵循了使用适用于Python的AWS开发工具包(Boto)发送电子邮件示例代码。该程序无法正确导入boto3。

当它第一次尝试导入boto3时,Python给出error ImportError: cannot import name ClientError

如果我尝试再次导入,则错误变为ImportError: cannot import name certs

我还检查了已安装的boto3版本,它与示例代码具有相同的版本。

boto3 Version: 1.4.4
botocore Version: 1.5.95
Run Code Online (Sandbox Code Playgroud)

Joh*_*ley 10

您的 boto3 和 botocore 版本非常过时。首先安装更新版本。我还会更新您安装的 AWS CLI 版本。

pip install boto3 --upgrade
pip install awscli --upgrade
Run Code Online (Sandbox Code Playgroud)

[评论后更新]

更新后,在执行“ aws --version”时仔细检查您是否至少有以下版本:

aws-cli/1.14.2 Python/2.7.9 Windows/8 botocore/1.8.6

接下来尝试从 CLI 发送电子邮件。以下是 Windows CMD 提示的脚本。使用经过 SES 验证的有效电子邮件地址进行修改。稍加修改的相同命令将适用于 Linux。

set FROM=from@mydomain.com
set TO=to@mydomain.com
aws ses send-email --from %FROM% --destination ToAddresses=%TO% --message Subject={Data="Hello world
"},Body={Text={Data="Hello World"}}
Run Code Online (Sandbox Code Playgroud)


Jia*_*Cao 5

最后,事实证明,此问题与名称重影有关。Botocore实际上有一个名为email的模块,我也将文件命名为email.py。结果,botocore无法正确导入电子邮件模块。