我正在尝试使用Boto访问AWS,但它无法正常工作。我已经在/ etc中安装了Boto和boto.cfg。这是我的代码:
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 :(得分:18)
您正在处理的文件看起来像boto.py
。我认为这里发生的事情是你的文件是自己导入的 - 在查看PYTHONPATH
之前,Python在包含执行导入的文件的目录中查找模块。尝试将名称更改为其他名称。
答案 1 :(得分:2)
@ valdogg21
我按照您的指示将其放入我的代码中:
from boto.s3.connection import S3Connection
conn = S3Connection('<aws access key>', '<aws secret key>')
但是尽管我有良好的意图,但它会导致一个小错误。我刚刚做了
sudo pip install boto --upgrade
以确保我安装了最新版本。
这是错误消息。只是想知道我是独行狼还是其他人遇到这个问题......
来自boto.s3.connection导入S3Connection ImportError:无法导入 名称S3Connection
答案 2 :(得分: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>')
编辑:我知道doc页面有你试图使用的快捷功能,但是当我尝试用EC2做同样类型的快捷方式时,我看到了类似的问题。
答案 3 :(得分:0)
使用Connection类。
e.g。
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)
答案 4 :(得分:0)
我已经尝试了所有解决方案,但它们似乎都没有效果。我继续浏览StackOverFlow,因为我看不到其他人没有这个相当小的问题。一种奇怪的事实是,它在服务器中的作用就像一个魅力。问题出在我的Mac上
答案 5 :(得分:0)
我遇到了这个问题,在使用boto3和moto模拟s3存储桶时遇到了同样的错误。
boto3.connect_s3()
我将我的库切换回boto,它工作正常。看起来boto3已将connect_s3()迁移到resources():
boto.connect_s3() //works
boto3.resources('s3') //works
我也可以解决AWS Lambda的类似问题:
boto.connect_awslambda() //works
boto3.client('lambda') //works