Инструмент (или комбинация инструментов) для воспроизводимых сред в Python

StackOverflow https://stackoverflow.com/questions/545730

Вопрос

Раньше я был разработчиком Java, и мы использовали такие инструменты, как ant или maven, для стандартизированного управления нашими средами разработки/тестирования/UAT.Это позволило нам обрабатывать зависимости библиотеки, устанавливать переменные ОС, компилировать, развертывать, запускать модульные тесты и выполнять все необходимые задачи.Кроме того, сгенерированные скрипты гарантировали, что все среды были настроены практически одинаково, и все задачи выполнялись одинаково всеми членами команды.

Сейчас я начинаю работать с Python и хотел бы получить ваш совет, какие инструменты мне следует использовать, чтобы добиться того же, что описано для Java.

Это было полезно?

Решение

  1. виртуальное окружение для создания автономной виртуальной среды (предотвращает столкновение разных версий Python или пакетов Python друг с другом).Людей, переходящих на этот инструмент, становится все больше.Автор тот же, что и старый рабочий-env.py, упомянутый Аароном.

  2. пункт для установки пакетов внутри virtualenv.Традиционным является easy_install, на что ответил С.Лотт, но pip лучше работает с virtualenv.Однако easy_install по-прежнему имеет функции, которых нет в pip.

  3. сконы в качестве инструмента сборки, хотя он вам и не понадобится, если вы остаетесь исключительно Python.

  4. Ткань вставить или асфальтоукладчик для развертывания.

  5. билдбот для непрерывной интеграции.

  6. Bazaar, mercurial или git для контроля версий.

  7. Нос как расширение для модульного тестирования.

  8. ПиФит для СООТВЕТСТВОВАТЬ тестирование.

Другие советы

Я также работаю как с Java, так и с Python.Для разработки на Python эквивалентом maven является setuptools (http://peak.telecommunity.com/DevCenter/setuptools).Для разработки веб-приложений я использую это в сочетании с Paster (http://pythonpaste.org/) для процесса развертывания

Кроме как easy_install?

Для наших серверов Linux мы используем easy_install и yum.

На наших ноутбуках для разработки под Windows мы используем easy_install и несколько MSI для некоторых проектов.

Большинство используемых нами библиотек Python имеют только исходный код, поэтому мы можем использовать один и тот же дистрибутив на всех устройствах.Если бы у нас было общее сетевое устройство, мы бы поместили их все туда.К сожалению, наша инфраструктура разбросана, поэтому нам приходится либо перемещать файлы .TAR, либо повторять установку, чтобы перестроить среду.

В некоторых случаях (например, PIL) нам приходится перекомпилировать и проверить номера версий.

Ты захочешь easy_setup чтобы получить яйца (примерно то, что Maven называет артефактом).

Для настройки среды ознакомьтесь с рабочий-env.py

Python не компилируется, но вы можете поместить все файлы проекта в яйцо.Это делается с инструменты настройки

Для CI проверьте этот ответ.

Было бы упущением не упомянуть также асфальтоукладчик, созданный Кевином Дангуром из ТурбоГирс слава.Проект все еще находится в стадии альфа-версии, но выглядит очень многообещающе.Фрагмент со страницы проекта:

Paver — это инструмент сценариев сборки, распространения и развертывания на основе Python, аналогичный Make или Rake.Уникальность Paver заключается в его интеграции с широко используемыми библиотеками Python.Обычные задачи, которые раньше были легкими, остаются легкими.Что еще более важно, теперь гораздо проще удовлетворить конкретные нужды и требования ваших приложений.

Я делаю именно это, используя комбинацию setuptools и Hudson.Я знаю, что Hudson — это Java-приложение, но оно прекрасно работает с Python.

Возможно, вы захотите проверить наш Девенв.Это позволяет стандартизировать среды сборки для разработки, контроля качества и UAT.Это бесплатно, как в «бесплатном пиве».

ХТХ

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top