Назад | Перейти на главную страницу

Ошибка импорта на 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

Я не знаю, с чего начать понимать, что идет не так. Это ошибка пути или бото устанавливается неправильно?

У вас, вероятно, есть старая версия boto, предустановленная на вашем AMI, которая еще не поддерживает SWF Layer 2.

Проверьте, введя это в оболочку:

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

Я думаю, что SWF Layer 2 был добавлен в версии 2.7, все, что было раньше, не будет работать. Вот фиксация добавления Layer2 в SWF

Самый простой вариант - добавить -U к команде pip, чтобы она обновляла ваши пакеты, если они уже установлены:

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