Почему travis-ci не может найти библиотеку, которую, похоже, удалось установить?

У меня есть небольшой веб-парсер на Python, который зависит от BeautifSoup https://github.com/fgregg/legistar-scrape. Мои тесты успешно выполняются локально, но на travis-ci Nosetests сразу же выдает ошибку, потому что не может найти BeautifulSoup, который, похоже, только что завершил установку.

Журнал сборки Travis-CI здесь: https://travis-ci.org/fgregg/legistar-scrape/jobs/5628189

Какие-либо предложения?


person fgregg    schedule 19.03.2013    source источник


Ответы (1)


Рекомендация

Измените это:

install: "sudo pip install -r requirements.txt"

к этому:

install: "pip install -r requirements.txt"

Проверьте использование здесь.

Доказательство концепции

Я разветвил ваш проект на github, добавил свою вилку в свою учетную запись travis-ci, внес предложенное мной изменение, зафиксировал и отправил на github. Вот две успешные сборки travis-ci: python 2.6 и python 2.7.

Virtualenvs

Вы используете virtualenv для разработки на Python? Или вы используете sudo pip install -r requirements.txt при локальном запуске? Я бы порекомендовал вам изучить virtualenvs и прекратить использование sudo pip install. Это то, что сейчас делает большинство разработчиков Python. Вот как работает travis-ci: он создает virtualenv и запускает из него ваше приложение.

Тесты на нос

По отдельности, ваши тесты на носу действительно медленные, потому что вы тестируете интеграцию - вы попадаете на живые серверы в Интернете, верно? Узнайте, как использовать фиктивную библиотеку, чтобы вы имитировали HTML, возвращаемый с ваших URL-адресов, а не фактически ударяя по этим серверам.

person hughdbrown    schedule 19.03.2013