Эквивалент Maven для python [закрыт]


Я начинающий разработчик java / python, и мне не хватает моих функций maven, особенно управления зависимостями и автоматизации сборки (я имею в виду, что вы не строите, но как создать пакет для развертывания?)

есть ли эквивалент python для достижения этих функций?
Примечание: Я использую python 2.x

спасибо.

5 117

5 ответов:

Python использует distutils и setuptools для зависимостей и упаковки.

вот учебник, который объясняет основы: http://docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html

короче говоря, у вас будет setup.py файл, который имеет информацию о компиляции/установке зависимостей и скриптов, и вы можете создавать с ним яйца, dist tarballs, binary tarballs и т. д.

нет прямого соответствия. Однако самое близкое, что вы можете получить:

  • zc.стройка: Он может устанавливать закрытые среды, загружать / обрабатывать зависимости, инициализировать сценарии и т. д. Он также строится на плагинах (или" рецептах", как они их называют). Я использовал его несколько лет назад, когда он был в стадии бета-тестирования, вероятно, он эволюционировал с тех пор. Существует кривая обучения, как и в Maven, но она также является самой мощной.

другие предложения являются подмножествами Maven/zc.наращивание:

  • Setuptools: создание / установка пакета
  • Пип: управление зависимостями
  • Virtualenv + virtualenvwrapper: управление отдельными средами python (то, что вам не нужно с Java)

вы, вероятно, знаете Ant и shell scripting, поэтому вы можете проверить также Эти инструменты Python:

  • ткани или Асфальтоукладчик: бегуны задачи командной строки с добавленными вкусами. Они обертывают ваше традиционное выполнение командной строки в python и позволяют управлять различными задачами более мощным способом (зависимости задач, интерпретация вывода, выполнение команд на удаленном сервере и т. д.). В принципе ничего, что вы не могли бы сделать с помощью сценариев оболочки, но в python это гораздо менее загадочно.

Я хотел бы отметить PyBuilder который сильно вдохновлен maven, но использует python вместо XML для конфигурации, поэтому он действительно читается, IMHO.

существует плагин для управления зависимостями (использует pip под капотом и различает зависимости от сборки и времени выполнения), и, в отличие от maven, вы можете запустить полный жизненный цикл сборки с помощью одной команды.

для развертывания, в дополнение к distutils / setuptoos, также взгляните на pip package (использует setuptools внизу). Он может откатить неудачные установки, а также удалить (что-то отсутствует в easy_install/setuptools). Кроме того, можно указать зависимости с помощью текстового файла требований.

хорошо использовать virtualenv для создания автономной среды проекта и использовать pip/easy_install для управления зависимостями.