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


87

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


3
Вам нужен инструмент для разрешения общих зависимостей и сборки, например make, который может создавать проекты на любом языке? Или что-то специально для сборки пакетов Python?
— Ян Клелланд,

1
Что-то общее. Сборка пакета Python интересна, но может быть выполнена с помощью общих инструментов.
— e-satis



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.


1
В чем преимущества других бра Waf?
— e-satis

5

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


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.