136 votes

Équivalent Maven pour python

Je suis un développeur java/python débutant, et les fonctionnalités de maven me manquent, en particulier la gestion des dépendances et l'automatisation de la construction (je veux dire qu'on ne construit pas, mais comment créer un paquet pour le déploiement ?)

Existe-t-il un équivalent python pour réaliser ces fonctionnalités ?
Note : J'utilise python 2.x.

Gracias.

68voto

Daniel Kluev Points 4321

Python utilise distutils et setuptools pour les dépendances et le packaging.

Voici un tutoriel qui explique les principes de base : http://docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html

En bref, vous aurez le fichier setup.py, qui a des informations sur les dépendances et les script de compilation/installation, et vous pouvez construire des œufs, des tarballs dist, des tarballs binaires, etc avec lui.

36voto

Tuukka Mustonen Points 1906

Il n'y a pas de correspondance directe. Cependant, le plus proche que vous pouvez obtenir :

  • zc.buildout : Il peut configurer des environnements fermés, télécharger/gérer des dépendances, initialiser des scripts, etc. Il se construit également sur des plugins (ou des "recettes", comme ils les appellent). Je l'ai utilisé il y a quelques années quand il était en phase bêta, probablement qu'il a évolué depuis. Il y a une courbe d'apprentissage, comme avec Maven, mais c'est aussi le plus puissant.

D'autres offres sont des sous-ensembles de Maven/zc.buildout :

Vous connaissez probablement Ant et les scripts shell, alors vous pouvez également consulter ces outils Python :

  • Tissu o Paver : des exécutants de tâches en ligne de commande avec des saveurs supplémentaires. Ils enveloppent votre exécution traditionnelle de ligne de commande en python, et permettent de gérer diverses tâches d'une manière plus puissante (dépendances de tâches, interprétation de la sortie, exécution de commandes dans un serveur distant, etc.) En gros, rien que vous ne puissiez faire avec un script shell, mais en python, c'est beaucoup moins cryptique.

14voto

user245678 Points 41

Je tiens à souligner PyBuilder qui est fortement inspiré de maven mais qui utilise python au lieu de XML pour la configuration, donc c'est vraiment lisible, IMHO.

Il existe un plugin pour la gestion des dépendances (qui utilise Pip sous le capot et fait la différence entre les dépendances de construction et d'exécution) et, à la différence de Maven, vous pouvez exécuter le cycle de construction complet avec une seule commande.

8voto

ars Points 35803

Pour le déploiement, en plus de distutils/setuptoos, jetez également un coup d'œil à la section paquet pip (utilise setuptools en dessous). Il peut annuler les installations qui ont échoué et aussi désinstaller (quelque chose qui manque à easy_install/setuptools). De plus, vous pouvez spécifier les dépendances via un fichier texte d'exigences.

4voto

Sun Ning Points 898

Il est bon d'utiliser virtualenv pour créer un environnement de projet autonome et d'utiliser pip/easy_install pour gérer les dépendances.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X