我有一台 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
我不知道从哪里开始了解出了什么问题。是路径错误,还是 boto 安装不正确?
答案1
您的 AMI 上可能预装了旧版本的 boto,该版本尚不支持 SWF Layer 2。
通过在 shell 中输入以下内容进行检查:
python -c "import boto; print boto.Version"
我认为 SWF Layer 2 是在版本 2.7 中添加的,在此之前的任何版本都无法工作。 以下是将 Layer2 添加到 SWF 的提交
最简单的选择是将 -U 添加到您的 pip 命令中,这样它会更新您的软件包(如果它们已经安装):
pip install -U -r /etc/test/requirements.txt