2012-12-13 25 views
7

के साथ एस 3 से कनेक्ट करने के लिए बोटो का उपयोग करना मैं बोटो का उपयोग करके एडब्ल्यूएस तक पहुंचने की कोशिश कर रहा हूं, और यह काम नहीं कर रहा है। मैंने बोटो, और boto.cfg/etc में स्थापित किया है।पाइथन

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 में अगर k.lower() boto.s3.key.Key.base_user_settable_fields में: AttributeError:।! 'मॉड्यूल' ऑब्जेक्ट कोई विशेषता 'कुंजी' – 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>') 

संपादित करें: मुझे पता है कि दस्तावेज़ पृष्ठ में शॉर्टकट फ़ंक्शन है जिसका आप उपयोग करने का प्रयास कर रहे हैं, लेकिन ईसी 2 के साथ उसी प्रकार के शॉर्टकट को करने का प्रयास करते समय मैंने एक ही समस्या देखी।

17

ऐसा लगता है कि जिस फ़ाइल पर आप काम कर रहे हैं उसे boto.py कहा जाता है। मुझे लगता है कि यहां क्या हो रहा है कि आपकी फ़ाइल स्वयं आयात कर रही है - पायथन निर्देशिका में मॉड्यूल की तलाश करता है जिसमें फ़ाइल PYTHONPATH पर प्रदर्शित होने से पहले आयात कर रही है। नाम को किसी और चीज़ में बदलने का प्रयास करें।

+0

कि पूरी तरह से काम किया है धन्यवाद –

+1

@RandallPinkston इसे स्वीकृत – igaurav

+3

के रूप में चिह्नित करें ध्यान दें कि अगर इसे बनाया गया है तो आपको उत्पन्न 'boto.pyc' को भी हटाने की आवश्यकता होगी। – jveldridge

0

कनेक्शन कक्षाओं का उपयोग करें।

उदा।

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 पर जा रहा हूं क्योंकि मैं किसी और को यह छोटा मुद्दा नहीं देख सकता हूं। अजीब तथ्य यह है कि सर्वर में यह एक आकर्षण की तरह काम करता है। यह मुद्दा मेरे मैक

0

पर था, मुझे यह समस्या थी और b33 और moto का उपयोग करते हुए एस 3 बाल्टी का उपयोग करते समय एक ही त्रुटि का सामना करना पड़ रहा था।

boto3.connect_s3() 

मैंने अपनी लाइब्रेरी को बोटो में वापस स्विच किया और यह ठीक काम किया।

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

मैं भी एडब्ल्यूएस लैम्ब्डा के लिए इसी तरह की समस्या को हल कर सकते हैं:: यह boto3 तरह माइग्रेट कर लिया है connect_s3() संसाधनों के लिए() लग रहा है

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