2010-07-24 2 views
108

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

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

Спасибо.

ответ

52

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

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

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

+5

Так как дорогой электропоезд Марк Пилигрим закрыл этот сайт, вот зеркало в [activestate] (http://docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html). – jiggy

+1

Я бы рекомендовал обновить это, чтобы указать [Руководство пользователя упаковки Python] (https://python-packaging-user-guide.readthedocs.io/en/latest/), так как это авторитетное руководство. – kojiro

8

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

5

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

+1

Это печально:) – reversiblean

32

Прямого матча нет. Тем не менее, ближе вы можете получить:

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

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

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

Y НУ, наверное, знают Ant и оболочку сценариев, так что вы можете также проверить эти инструменты Python:

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

Я хотел бы отметить, PyBuilder который сильно вдохновлен мавенно, но использует питон вместо XML для конфигурации, так что на самом деле читается, ИМХО.

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

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