Rake - это инструмент для сборки программного обеспечения, написанный на Ruby (например, Ant или Make ), поэтому все его файлы написаны на этом языке. Есть ли что-то подобное в Python?
Вам нужен инструмент для разрешения общих зависимостей и сборки, например make, который может создавать проекты на любом языке? Или что-то специально для сборки пакетов Python?
Ян Клелланд,
1
Что-то общее. Сборка пакета Python интересна, но может быть выполнена с помощью общих инструментов.
Fabric 2.x - библиотека удаленного выполнения и развертывания, использующая Invoke .
Пэчворк - «Общие операции развертывания / системного администратора, построенные на Fabric».
Invoke - это инструмент и библиотека для выполнения задач Python (2.6+ и 3.3+), черпая вдохновение из различных источников, чтобы получить мощный и чистый набор функций.
Ниже приведены несколько описательных заявлений с веб-сайта Invoke :
Invoke - это инструмент и библиотека для выполнения задач Python (2.6+ и 3.3+), черпая вдохновение из различных источников, чтобы получить мощный и чистый набор функций.
Подобно инструменту Ruby Rake и собственному предшественнику Invoke Fabric 1.x, он предоставляет чистый высокоуровневый API для запуска команд оболочки и определения / организации функций задач из файла tasks.py.
@IgorZevaka теперь работает на windows, та же тема - github.com/pyinvoke/invoke/pull/119
Roman M. Koss
1
Был пользователем лопаты около 4 лет назад. Однозначно пойти с Invoke сейчас. Очень классный интерфейс командной строки, объявление задачи приятное и простое, цепочка похожа на Make. Ницца.
ддоценко
Есть какие-нибудь мнения о Paver (упомянутом в других ответах на этот вопрос) и Invoke? они прямые «конкуренты»? За и против?
По состоянию на 23 декабря 15 последний раз лопата обновлялась год назад 5 декабря 2014 года.
Мэтью Рэнкин
6
Waf - это фреймворк на основе Python для настройки, компиляции и установки приложений. Он основан на концепциях других инструментов сборки, таких как Scons, Autotools, CMake или Ant.
Использование buildout для этого похоже на использование танка для поездки в торговый центр, не так ли? Использование любых инструментов Zope / Plone вне Zope / Plone, как правило, в любом случае :-p
e-satis
"Для этого"? Он не уточнил, для чего хотел его использовать. В любом случае buildout - это не инструмент Zope / Plone. Он тоже не большой и не сложный. Это действительно утомительно цитировать, что некоторые люди отказываются от инструмента только потому, что он написан или используется разработчиками Zope. Такое отношение довольно глупое.
Леннарт Регебро,
Да ладно, это было просто дразнить. Раньше я работал в компании, работающей только на Plone, и да, мы часто шутим над инструментами, которые использовали. Это разумное отношение, тебе не кажется?
distutilsПакет обеспечивает поддержку для создания и установки дополнительных модулей в установке Python. Новые модули могут быть либо на 100% чистым Python, либо могут быть модулями расширения, написанными на C, или могут быть коллекциями пакетов Python, которые включают модули, написанные как на Python, так и на C.
Ответы:
У Paver похожий набор целей, хотя я не знаю, как он сравнивается.
источник
1.1.0 (July 30, 2012)
Invoke - Fabric без зависимостей SSH.
В дорожной карте Fabric обсуждается, что Fabric 1.x будет разделен на три части:
Invoke - это инструмент и библиотека для выполнения задач Python (2.6+ и 3.3+), черпая вдохновение из различных источников, чтобы получить мощный и чистый набор функций.
Ниже приведены несколько описательных заявлений с веб-сайта Invoke :
источник
Лопата кажется многообещающей:
Лопата - грабли для Python
https://github.com/seomoz/shovel
источник
Waf - это фреймворк на основе Python для настройки, компиляции и установки приложений. Он основан на концепциях других инструментов сборки, таких как Scons, Autotools, CMake или Ant.
источник
Хотя он чаще используется для развертывания, в этом случае может быть интересен Fabric .
источник
Существует также doit - я наткнулся на него, когда искал эти вещи некоторое время назад, хотя я не очень далеко продвинулся с его оценкой.
источник
Также обратите внимание на buildout - это не столько система сборки для программного обеспечения, сколько система сборки для развертывания.
http://pypi.python.org/pypi/pysqlite/2.5.5
Так что это не эквивалент прямого рейка, но может быть лучшим вариантом для того, что вы хотите сделать, или действительно плохим.
источник
В Boo есть Phantom (это не Python, но почти).
источник
Я бы посмотрел
distutils
:источник