2012-12-13 20 views
7

Botoを使用してAWSにアクセスしようとしていますが、機能しません。 Botoとboto.cfgを/ etcにインストールしました。Botoを使用してPythonでS3に接続する

import requests, json 
import datetime 
import hashlib 
import boto 

conn = boto.connect_s3() 

ここでエラーです:ここに私のコードは

Traceback (most recent call last): 
    File "boto.py", line 4, in <module> 
    import boto 
    File "/home/mydir/public_html/boto.py", line 6, in <module> 
    conn = boto.connect_s3() 
AttributeError: 'module' object has no attribute 'connect_s3' 

一体何?これは複雑ではありません。

+0

わからない場合は、私は取得していますboto/utils。"py"、171行目、merge_meta内 boto.s3.key.Key.base_user_settable_fieldsのk.lower(): AttributeError: 'module'オブジェクトに 'key'属性がありません – radtek

答えて

0

あなたは、私がこのようになります私のコードの一部でEC2Connectionクラスを利用していた方法に類似した何かをする必要があるかもしれません。そのドキュメントから、

from boto.ec2.connection import EC2Connection 
conn = EC2Connection(...) 

また(http://boto.s3.amazonaws.com/s3_tut.html):

>>> from boto.s3.connection import S3Connection 
>>> conn = S3Connection('<aws access key>', '<aws secret key>') 

編集:私はドキュメントのページには、使用しようとしているショートカット機能を持っていることを知っているが、EC2でショートカットの同じタイプをやろうとしたとき、私は同様の問題を見ました。

17

あなたが作業しているファイルがboto.pyと思われるようです。私はここで何が起こっているのかはあなたのファイルが自分自身をインポートしていることだと思います - PythonはあなたのPYTHONPATHを見る前に、インポートを行っているファイルを含むディレクトリ内のモジュールを探します。名前を別のものに変更してみてください。

+0

これは完全に機能しました。ありがとうございました! –

+1

@RandallPinkstonこれを受け入れたものとしてマークする – igaurav

+3

生成された 'boto.pyc'が作成されていれば削除する必要があることに注意してください。 – jveldridge

0

Connectionクラスを使用します。

valdogg21

@

from boto.s3.connection import S3Connection 
from boto.sns.connection import SNSConnection 
from boto.ses.connection import SESConnection 

def connect_s3(self): 
    return S3Connection(AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY) 

def connect_sns(self): 
    return SNSConnection(AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY) 

def connect_ses(self): 
    return SESConnection(AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY) 
2

私はあなたの指示に従うと、私のコードにこれを入れています:

from boto.s3.connection import S3Connection 
conn = S3Connection('<aws access key>', '<aws secret key>') 

しかし、私の善意にもかかわらず、それは小さなエラーになります。私はちょうど私が最新バージョンがインストールされていることを確認するために

sudo pip install boto --upgradeをしました。

これはエラーメッセージです。私は一匹狼だか、他の人がこの問題が発生した場合...

from boto.s3.connection import S3Connection ImportError: cannot import name S3Connection

0

場合だけ不思議私はあなたのすべてのソリューションを試してみましたが、それらのどれも動作するようには思えません。私はStackOverFlowをやっています。他に誰かがこの小さな問題を持っていないのを見ることはできません。奇妙な事実の種類は、それが魅力のように動作することです。問題は私のMacにあります

0

私はこの問題を抱えていましたが、boto3とmotoを使ってs3バケットをモックすると同じエラーが発生しました。

boto3.connect_s3() 

私のライブラリをbotoに戻して正常に動作しました。私はあまりにもAWSラムダのために同様の問題を解決することができ

boto.connect_s3() //works 
boto3.resources('s3') //works 

:それは、リソースへのboto3が移行しているようconnect_s3()()に見える私のエラーが関連している

boto.connect_awslambda() //works 
boto3.client('lambda') //works 
関連する問題