Equivalent Maven pour python [fermé]

146

Je suis un développeur Java / débutant en python, et il me manque mes fonctionnalités maven, en particulier la gestion des dépendances et l'automatisation de la construction (je veux dire que vous ne construisez pas, mais comment créer un package pour le déploiement?)

Existe-t-il un équivalent python pour atteindre ces fonctionnalités?
Remarque: j'utilise python 2.x

Merci.

Enno Shioji
la source

Réponses:

70

Python utilise distutils et setuptools pour les dépendances et l'empaquetage.

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

En bref, vous aurez le fichier setup.py, qui a des informations de dépendance et de compilation / installation de script, et vous pouvez créer des oeufs, des archives tar dist, des archives tar binaires, etc. avec.

Daniel Kluev
la source
6
Depuis que Mark Pilgrim, très électro-disparu, a fermé ce site, voici le miroir à activestate .
jiggy
2
Je recommanderais de mettre à jour cela pour pointer vers le guide de l'utilisateur de l'emballage Python, car il fait maintenant autorité.
kojiro
38

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 s'appuie également sur des plugins (ou "recettes", comme ils les appellent). Je l'ai utilisé il y a quelques années alors qu'il était en phase bêta, il a probablement évolué depuis. Il y a une courbe d'apprentissage, comme avec Maven, mais c'est aussi la plus puissante.

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

  • Setuptools : création / installation de packages
  • Pip : gestion des dépendances
  • Virtualenv + virtualenvwrapper : gestion d'environnements python séparés (quelque chose dont vous n'avez pas besoin avec Java)

Vous connaissez probablement Ant et les scripts shell, vous pouvez donc vérifier également ces outils Python:

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

Je voudrais souligner PyBuilder qui est fortement inspiré de maven mais utilise python au lieu de XML pour la configuration, donc il est réellement lisible, à mon humble avis .

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

user245678
la source
9

Pour le déploiement, en plus de distutils / setuptoos, jetez également un œil au package pip (utilise setuptools ci-dessous). Il peut annuler les installations ayant échoué et également désinstaller (quelque chose manquant dans easy_install / setuptools). En outre, vous pouvez spécifier des dépendances via un fichier texte d'exigences.

ars
la source
6

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

Ning Sun
la source
7
C'est triste
:)