2012-12-13 59 views
7

我試圖訪問使用AWS寶途,並且它不工作連接到S3。我已經安裝了Boto,並在/ etc中安裝了boto.cfg。這裏是我的代碼:使用boto與Python的

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

不知道我的錯誤是相關的,但我發現博託/ utils的。py「,第171行,在merge_meta中 如果k.lower()在boto.s3.key.Key.base_user_settable_fields中: 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類。

例如

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

@ valdogg21

我下面您的指示,要把它放到我的代碼:

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,摩托車,自行車時嘲笑S3存儲正面臨着同樣的錯誤。

boto3.connect_s3() 

我把我的庫切換回博託,它工作正常。它看起來像boto3已經遷移connect_s3()資源():

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

我可以解決類似的問題,爲AWS LAMBDA太:

如果
boto.connect_awslambda() //works 
boto3.client('lambda') //works