2017-12-22 36 views
0

PythonでAWS Simple Email Serviceを使用しようとしています。私はSend an Email Using the AWS SDK for Python (Boto) sample codeに従った。プログラムは正しくboto3をインポートできません。Python import boto3エラー:名前をインポートできませんClientError

boto3をはじめてインポートしようとすると、PythonはエラーImportError: cannot import name ClientErrorを返します。

再度インポートしようとすると、エラーはImportError: cannot import name certsになります。

インストールされているboto3のバージョンもチェックしてあり、サンプルコードと同じバージョンです。

boto3 Version: 1.4.4 
botocore Version: 1.5.95 
+0

これを試してください - https://stackoverflow.com/a/39837766/508214 – titogeo

答えて

1

ご使用のバージョンのboto3とbotocoreの日付は非常に古いです。まず更新版をインストールしてください。また、インストールされているAWS CLIのバージョンも更新します。

pip install boto3 --upgrade 
pip install awscli --upgrade 

[コメントの後にUPDATE]アップデート後

、「aws --version」を実行するときには、少なくとも以下のバージョンを持っていることをダブルチェック:

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

次から電子メールを送信しようとしますCLI。以下は、Windows CMDプロンプトのスクリプトです。 SESで検証された有効な電子メールアドレスを使用して変更します。同じコマンドを修正しても、少しLinux上で動作します。

set [email protected] 
set [email protected] 
aws ses send-email --from %FROM% --destination ToAddresses=%TO% --message Subject={Data="Hello world 
"},Body={Text={Data="Hello World"}} 
+0

最新のバージョンにアップグレードしようとしましたが、同じエラーが表示されます。 –

+0

問題をデバッグするのに役立つより多くの手順で自分の回答を変更しました。 –

+0

サンプルコードが現在のboto3バージョン(1.4.8)とPython 2.7.13とPython 3.6.1で正しく動作することを確認しました。引き続き問題が発生した場合、boto3のインストールは無効です。私はそれを削除し、新鮮なものを再インストールします。また、残りのPythonシステムとライブラリが最新のものであることを確認してください。 –

1

最後に、この問題は名前シャドウイングに関連していることが判明しました。 Botocoreには実際にemailというモジュールがあり、ファイル名はemail.pyとなっています。その結果、botocoreは電子メールモジュールを正しくインポートできません。

+0

私はこれを正確に実行しました、ありがとうございます。 – Stephan

関連する問題