Есть ли в Python эквивалент Rake?

87

Rake - это инструмент для сборки программного обеспечения, написанный на Ruby (например, Ant или Make ), поэтому все его файлы написаны на этом языке. Есть ли что-то подобное в Python?

e-satis
источник
3
Вам нужен инструмент для разрешения общих зависимостей и сборки, например make, который может создавать проекты на любом языке? Или что-то специально для сборки пакетов Python?
Ян Клелланд,
1
Что-то общее. Сборка пакета Python интересна, но может быть выполнена с помощью общих инструментов.
e-satis
1
также см .: stackoverflow.com/questions/542289/…
Ray
1
также см. farmdev.com/ought/46/the-python-make-tool
locojay
4
Кто-нибудь пришел сюда с горки Джо Армстронга? youtu.be/lKXe3HUG2l4?t=1270
nephewtom

Ответы:

28

У Paver похожий набор целей, хотя я не знаю, как он сравнивается.

Нед Батчелдер
источник
Это определенно кажется наиболее близким.
e-satis
1
Похоже, что в 2011 году
Джон Ми
2
Проект все еще активен, журнал
Стефан Шмидт
1
Последняя версия на pythonhosted.org/Paver/changelog.html это1.1.0 (July 30, 2012)
clacke
Есть какие-нибудь мнения о Invoke (упомянутых в других ответах на этот вопрос) и Paver? они прямые «конкуренты»? За и против?
inger
38

Invoke - Fabric без зависимостей SSH.

В дорожной карте Fabric обсуждается, что Fabric 1.x будет разделен на три части:

  1. Invoke - выполнение задачи без SSH.
  2. Fabric 2.x - библиотека удаленного выполнения и развертывания, использующая Invoke .
  3. Пэчворк - «Общие операции развертывания / системного администратора, построенные на Fabric».

Invoke - это инструмент и библиотека для выполнения задач Python (2.6+ и 3.3+), черпая вдохновение из различных источников, чтобы получить мощный и чистый набор функций.

Ниже приведены несколько описательных заявлений с веб-сайта Invoke :

  • Invoke - это инструмент и библиотека для выполнения задач Python (2.6+ и 3.3+), черпая вдохновение из различных источников, чтобы получить мощный и чистый набор функций.
  • Подобно инструменту Ruby Rake и собственному предшественнику Invoke Fabric 1.x, он предоставляет чистый высокоуровневый API для запуска команд оболочки и определения / организации функций задач из файла tasks.py.
Мэттью Рэнкин
источник
1
@IgorZevaka теперь работает на windows, та же тема - github.com/pyinvoke/invoke/pull/119
Roman M. Koss
1
Был пользователем лопаты около 4 лет назад. Однозначно пойти с Invoke сейчас. Очень классный интерфейс командной строки, объявление задачи приятное и простое, цепочка похожа на Make. Ницца.
ддоценко
Есть какие-нибудь мнения о Paver (упомянутом в других ответах на этот вопрос) и Invoke? они прямые «конкуренты»? За и против?
inger
6

Waf - это фреймворк на основе Python для настройки, компиляции и установки приложений. Он основан на концепциях других инструментов сборки, таких как Scons, Autotools, CMake или Ant.

las3rjock
источник
1
В чем преимущества других бра Waf?
e-satis
5

Хотя он чаще используется для развертывания, в этом случае может быть интересен Fabric .

Charlax
источник
4

Существует также doit - я наткнулся на него, когда искал эти вещи некоторое время назад, хотя я не очень далеко продвинулся с его оценкой.

Хэмиш Даунер
источник
0

Также обратите внимание на buildout - это не столько система сборки для программного обеспечения, сколько система сборки для развертывания.

http://pypi.python.org/pypi/pysqlite/2.5.5

Так что это не эквивалент прямого рейка, но может быть лучшим вариантом для того, что вы хотите сделать, или действительно плохим.

Леннарт Регебро
источник
1
Использование buildout для этого похоже на использование танка для поездки в торговый центр, не так ли? Использование любых инструментов Zope / Plone вне Zope / Plone, как правило, в любом случае :-p
e-satis
"Для этого"? Он не уточнил, для чего хотел его использовать. В любом случае buildout - это не инструмент Zope / Plone. Он тоже не большой и не сложный. Это действительно утомительно цитировать, что некоторые люди отказываются от инструмента только потому, что он написан или используется разработчиками Zope. Такое отношение довольно глупое.
Леннарт Регебро,
Да ладно, это было просто дразнить. Раньше я работал в компании, работающей только на Plone, и да, мы часто шутим над инструментами, которые использовали. Это разумное отношение, тебе не кажется?
e-satis
-2

Я бы посмотрел distutils:

distutilsПакет обеспечивает поддержку для создания и установки дополнительных модулей в установке Python. Новые модули могут быть либо на 100% чистым Python, либо могут быть модулями расширения, написанными на C, или могут быть коллекциями пакетов Python, которые включают модули, написанные как на Python, так и на C.

Эндрю Хэйр
источник
поддерживает ли он такие вещи, как создание документации или выполнение модульных тестов?
Wernight 05