我正在尝试将boto用作下载的库,而不是在我的机器上全局安装它。我能够导入boto,但是当我运行boto.connect_dynamodb()时出现错误:
ImportError: No module named dynamodb.layer2
这是我的文件结构:
project/
project/
__init__.py
libraries/
__init__.py
flask/
boto/
views/
....
modules/
__init__.py
db.py
....
templates/
....
static/
....
runserver.py
相关文件的内容如下:
from project.libraries import boto
conn = boto.connect_dynamodb(
aws_access_key_id='<YOUR_AWS_KEY_ID>',
aws_secret_access_key='<YOUR_AWS_SECRET_KEY>')
我做错了什么?提前谢谢。
答案 0 :(得分:2)
我强烈建议使用virtualenv。这正是它的设计目标。
如果由于某种原因无法实现,请确保将boto安装目录添加到PYTHONPATH。所以,从你的例子可以这样:
export PYTHONPATH=/path_to_project/project/libraries
应该允许事情发挥作用。但同样,virtualenv是你的朋友。
答案 1 :(得分:0)
虽然我同意garnaat关于virtualenv的优点(没有双关语),但我认为您的问题可能是您的boto版本没有DynamoDB支持。例如,我最近使用pip安装了boto,而我的版本是2.0。您可以使用boto.Version
根据发行说明(见下面的链接),2.2.0版本中添加了DynamoDB支持。
你最容易做的事情(如果安装了git)是从GitHub克隆它:
git clone https://github.com/boto/boto.git
或者,如果您没有安装git并且不想安装它,则可以从GitHub(ZIP或tarball)获取最新版本标记(2.3.0)。 / p>