Инструмент (или комбинация инструментов) для воспроизводимых сред в Python - PullRequest
9 голосов
/ 13 февраля 2009

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

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

Ответы [ 7 ]

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

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

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

  4. Fabric paste или paver для развертывания.

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

  6. Базар, Mercurial или Git для контроля версий.

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

  8. PyFit для FIT тестирования.

3 голосов
/ 13 февраля 2009

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

2 голосов
/ 13 февраля 2009

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

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

2 голосов
/ 13 февраля 2009

Вам понадобится easy_setup , чтобы получить яйца (примерно то, что Мейвен называет артефактом).

Для настройки вашей среды, посмотрите на working-env.py

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

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

2 голосов
/ 13 февраля 2009

Кроме easy_install ?

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

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

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

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

0 голосов
/ 14 мая 2010

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

НТН

0 голосов
/ 13 февраля 2009

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

...