在boto上导入错误 – 找不到模块

我有一个Ubuntu的LTS服务器。 在启动时我运行一个脚本,它执行以下操作:

#!/bin/bash apt-get -y install build-essential python-dev libxml2-dev libxslt1-dev apt-get -y install python-pip python-virtualenv mkdir /etc/test/venv virtualenv /etc/test/venv . /etc/test/venv/bin/activate pip install -r /etc/test/requirements.txt cd /etc/test/utilities/ chmod +x worker.py ./worker.py & exit 0 

我知道这个执行正常。 在我的requirements.txt中,我有以下几点:

 boto scrapy 

然后在我的worker.py中,以这段代码开始:

 #!/usr/bin/env python import logging import boto.swf.layer2 as swf 

我得到的错误是:

 Import Error: No module named boto.swf.layer2 

我不知道从哪里开始了解哪里出了问题。 这是一个path错误,或者boto没有正确安装?

您可能已经在您的AMI上预先安装了旧版本的boto,但尚未提供SWF Layer 2支持。

通过在shell中input以下内容进行检查:

python -c "import boto; print boto.Version"

我认为SWF Layer 2是在2.7版本中添加的,以前的任何东西都不行。 这里是向SWF添加Layer2的提交

最简单的select是将-U添加到您的pip命令中,以便它在已经安装的情况下更新您的软件包:

 pip install -U -r /etc/test/requirements.txt