Эквивалент Maven для python

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

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

Спасибо.


person Enno Shioji    schedule 24.07.2010    source источник


Ответы (5)


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

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

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

person Daniel Kluev    schedule 24.07.2010
comment
Так как Марк Пилгрим, которого так дорого уволили с электроники, закрыл этот сайт, вот зеркало по адресу активное состояние. - person jiggy; 05.02.2012
comment
Я бы рекомендовал обновить это, чтобы указать на Руководство пользователя по упаковке Python так как теперь это авторитетное руководство. - person kojiro; 24.05.2016
comment
Ссылки в вопросе и оба комментария мертвы. - person Rupert Madden-Abbott; 12.01.2021
comment
Рабочая ссылка на Руководство пользователя по упаковке Python за январь 2021 г.: packaging.python.org - person jshd; 23.01.2021

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

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

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

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

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

  • Fabric или Paver: средства запуска задач из командной строки с дополнительными возможностями. Они оборачивают ваше традиционное выполнение из командной строки в python и позволяют более эффективно управлять различными задачами (зависимости задач, интерпретация вывода, запуск команд на удаленном сервере и т. д.). По сути, ничего такого, что вы не могли бы сделать с помощью сценариев оболочки, но в python это гораздо менее загадочно.
person Tuukka Mustonen    schedule 14.06.2011

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

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

person user245678    schedule 01.05.2014
comment
Отличный учебник для начала работы с PyBuilder: pybuilder.io/documentation/tutorial. - person jshd; 23.01.2021

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

person ars    schedule 24.07.2010

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

person Ning Sun    schedule 30.12.2010
comment
Это грустно : ) - person Gayan Weerakutti; 24.12.2017