2015-04-08 3 views
0

Постараюсь быть прямым здесь:Mock в коде производства

Я программист Руби, начиная с Python, и я пытаюсь что-то с Scrapy. Я смотрю в код моя компания получила от третьей стороны, и одна вещь, ломает мой Scrapyd развертывания (на облаке):

ImportError: no module named mock 

Я установил локально, это на мой requirements.txt, но он разбивается вверх по течению, в процессе развертывания. Чтобы быть точным, это единственное место, где я grep'd ссылка на насмехайся производстве код:

def parse(self, response): 
    ... 
    with mock.patch('lxml.html', lxml.html):        
     article.parse() 
    ... 

Может кто-нибудь увидеть свет в конце туннеля? Кто-нибудь есть какие-либо идеи, почему бы вы использовать этот макет на производстве код

Спасибо =]

EDIT 1 (и что он должен делать?): Может быть, я должен что-то уточнить: в их интерфейсе Scrapyd , у них есть это место для разработчика, чтобы загрузить «яйца Python». Я не уверен, что это такое (звучит как Gemfile или ... пакет модулей, который будет импортирован сервером), но я побежал python setup.py bdist_egg, чтобы сгенерировать это яйцо, я полагаю, он включает в себя все зависимости (настройка .py вызывает путаницу для новичков на Python). Короче говоря: я выполнил эту команду и загрузил ее на интерфейс Scrapyd сервера. Таким образом, у меня нет доступа к apt-get или даже ssh для машины Scrapyd.

EDIT 2: У меня нет доступа к APT-получить на сервере, это обычный сервер Scrapyd. Ответ, называемый «дубликат» на этот, не ответ на мой вопрос.

+0

Возможный дубликат [ImportError: Нет модуля с именем simplejson] (http://stackoverflow.com/questions/2604841/importerror-no-module-named-simplejson) –

+1

Если это единственное место, то где именно импорт повышение этой ошибки? –

+0

Извините, я имел в виду: единственное место, где вызывается. в пауке есть «импортный макет». –

ответ

2

Вы должны создавать яйца зависимостей, а не всего вашего проекта. Чтобы сделать это, первый клон mock хранилища:

hg clone https://code.google.com/p/mock/ 

Затем построить яйцо:

python setup.py bdist_egg 

и найти яйцо для использования под dist папку. Загрузите его на сервер Scrapyd и он должен удовлетворять зависимости.

+0

Поскольку мой ответ об ошибке теперь изменился на «ImportError: No module named newspaper», я буду делать этот же процесс со всеми модулями, и я принимаю этот ответ. Большое спасибо! –

+0

Если бы кто-то позаботился о разработке побочного вопроса: это лучший способ в Python управлять зависимостями на стороне сервера? Я имею в виду, что в Ruby мы отправляем Gemfile, и Bundler автоматически будет искать наши зависимости. Разве что-то немного меньше ... больно? Спасибо =] –

 Смежные вопросы

  • Нет связанных вопросов^_^