Existe-t-il un équivalent Rake en Python?

87

Rake est un outil de création de logiciel écrit en Ruby (comme Ant ou Make ), et donc tous ses fichiers sont écrits dans cette langue. Est-ce que quelque chose comme ça existe en Python?

e-satis
la source
3
Êtes-vous à la recherche d'un outil général de résolution de dépendances et de création, comme make, qui peut créer des projets à partir de n'importe quel langage? Ou quelque chose pour créer des packages python spécifiquement?
Ian Clelland
1
Quelque chose de général. Construire un package Python est intéressant, mais peut être réalisé avec des outils généraux.
e-satis
4
Quelqu'un est-il venu ici de la diapositive Joe Armstrong? youtu.be/lKXe3HUG2l4?t=1270
nephewtom

Réponses:

37

Invoke - Fabric sans les dépendances SSH.

La feuille de route de Fabric indique que Fabric 1.x sera divisé en trois parties:

  1. Invoke - L'exécution de la tâche non SSH.
  2. Fabric 2.x - La bibliothèque d'exécution et de déploiement à distance qui utilise Invoke .
  3. Patchwork - Les «opérations courantes de déploiement / sysadmin, basées sur Fabric».

Invoke est un outil et une bibliothèque d'exécution de tâches Python (2.6+ et 3.3+), s'inspirant de diverses sources pour arriver à un ensemble de fonctionnalités puissant et propre.

Voici quelques déclarations descriptives du site Web d' Invoke :

  • Invoke est un outil et une bibliothèque d'exécution de tâches Python (2.6+ et 3.3+), s'inspirant de diverses sources pour arriver à un ensemble de fonctionnalités puissant et propre.
  • Comme l'outil Ruby Rake et le propre prédécesseur d'Invoke, Fabric 1.x, il fournit une API propre et de haut niveau pour exécuter des commandes shell et définir / organiser des fonctions de tâche à partir d'un fichier tasks.py.
Matthew Rankin
la source
1
@IgorZevaka maintenant cela fonctionne sur Windows, le même sujet - github.com/pyinvoke/invoke/pull/119
Roman M. Koss
Était utilisateur de Shovel il y a environ 4 ans. Allez définitivement avec Invoke maintenant. Interface de ligne de commande très cool, la déclaration des tâches est agréable et facile, le chaînage ressemble à celui de Make. Agréable.
ddotsenko
6

Waf est un framework basé sur Python pour configurer, compiler et installer des applications. Il dérive des concepts d'autres outils de construction tels que Scons, Autotools, CMake ou Ant.

las3rjock
la source
1
Quels sont les avantages des autres scons Waf?
e-satis
5

Bien qu'il soit plus couramment utilisé pour le déploiement, Fabric peut être intéressant pour ce cas d'utilisation.

charlax
la source
4

Il y a aussi doit - je l'ai rencontré en cherchant ces choses il y a quelque temps, même si je ne suis pas allé très loin dans son évaluation.

Hamish Downer
la source
0

Consultez également buildout, qui n'est pas tant un système de création de logiciels qu'un système de création de déploiement.

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

Ce n'est donc pas un équivalent de rake direct, mais peut-être mieux adapté à ce que vous voulez faire, ou vraiment nul.

Lennart Regebro
la source
1
Utiliser le buildout pour cela, c'est comme demander à un tank d'aller au centre commercial, n'est-ce pas? L'utilisation de n'importe quel outil Zope / Plone en dehors de Zope / Plone est généralement, de toute façon :-p
e-satis
"Pour ça"? Il n'a pas précisé à quoi il voulait l'utiliser. Quoi qu'il en soit, buildout n'est pas un outil Zope / Plone. Ce n'est pas non plus grand ou complexe. Il est vraiment fatiguant que certaines personnes rejettent l'outil uniquement parce qu'il est écrit ou utilisé par les développeurs de Zope. Cette attitude est assez stupide.
Lennart Regebro
Allez, c'était juste taquin. J'avais l'habitude de travailler pour une entreprise exclusivement Plone et oui, nous avons l'habitude de faire beaucoup de blagues sur les outils que nous utilisions. C'est une attitude sensée, tu ne penses pas?
e-satis le
0

Il y a Phantom dans Boo (qui n'est pas Python, mais presque).

Wernight
la source
-2

Je vérifierais distutils:

Le distutilspackage prend en charge la création et l'installation de modules supplémentaires dans une installation Python. Les nouveaux modules peuvent être soit 100% pur Python, soit des modules d'extension écrits en C, soit des collections de packages Python qui incluent des modules codés en Python et C.

Andrew Hare
la source
prend-il en charge des choses comme la génération de documentation ou l'exécution de tests unitaires?
Wernight