Чи існує еквівалент Rake у Python?


87

Rake - це інструмент побудови програм, написаний на Ruby (наприклад, Ant або Make ), і тому всі його файли написані цією мовою. Чи існує щось подібне в Python?


3
Ви шукаєте загальний інструмент вирішення залежностей та інструмент побудови, такий як make, який може будувати проекти з будь-якої мови? Або щось для спеціального створення пакетів python?
Ian Clelland

1
Щось загальне. Створення пакету Python цікаво, але його можна виконати за допомогою загальних інструментів.
e-satisfa



4
Хтось приїжджав сюди із слайда Джо Армстронга? youtu.be/lKXe3HUG2l4?t=1270
nephewtom

Відповіді:


28

Paver має подібний набір цілей, хоча я насправді не знаю, як це порівнює.


Це здається, безумовно, найближчим.
e-satisfa


2
Проект все ще активний, журнал
Стефан Шмідт

1
Остання версія за адресою pythonhosted.org/Paver/changelog.html є1.1.0 (July 30, 2012)
clacke

37

Invoke - тканина без залежностей SSH.

В Тканина дорожньої карти обговорюється , що тканину 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's Rake та власному попереднику Fabric 1.x від Invoke, він забезпечує чистий API високого рівня для запуску команд оболонки та визначення / впорядкування функцій завдання з файлу task.py.

1
@IgorZevaka зараз це працює на вікнах, та сама тема - github.com/pyinvoke/invoke/pull/119
Роман М. Косс

Був користувачем Shovel близько 4 років тому. Однозначно піти з Invoke зараз. Дуже класний інтерфейс командного рядка, декларація завдань є приємною та простою, ланцюжок відчувається як у Make. Приємно.
ddotsenko


6

Waf - це фреймворк на основі Python для налаштування, компіляції та встановлення програм. Він походить від концепцій інших інструментів побудови, таких як Scons, Autotools, CMake або Ant.


1
Які переваги інших ватиків Waf?
e-satisfa

5

Хоча він частіше використовується для розгортання, Fabric може бути цікавим для цього випадку використання.



0

Також перевірте buildout, яка є не стільки системою make для програмного забезпечення, скільки системою make для розгортання.

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

Отже, це не прямий еквівалент граблів, але може бути кращим відповідником того, що ви хочете зробити, або насправді паршивим.


1
Використовувати нарощування для цього - все одно, що пропустити танк, щоб піти до торгового центру, чи не так? Використання будь-яких інструментів Zope / Plone поза Zope / Plone, як правило, є, так чи інакше :-p
e-satisfa

"Для того"? Він не вказав, для чого хоче його використовувати. У будь-якому випадку, buildout не є інструментом Zope / Plone. Він також не великий або складний. Це справді втомлює те, що деякі люди відмовляються від інструменту лише тому, що він написаний або використовується розробниками Zope. Таке ставлення це досить глупо.
Леннарт Регебро

Давай, це просто дражнило. Раніше я працював у компанії, яка працює лише з Plone, і так, ми часто жартуємо про інструменти, якими ми користувались. Це розумне ставлення, вам не здається?
e-satisfa


-2

Я б перевірив distutils:

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


чи підтримує він такі речі, як генерація документації або запуск модульних тестів?
Wernight
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.