У меня есть сервер 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