Équivalent Maven pour python [fermé]
Je suis un développeur java / débutant 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 réaliser ces fonctionnalités?
Remarque: j'utilise python 2.x
Merci.
5 réponses
Python utilise distutils et setuptools pour la dépendance 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 setup.py fichier, qui a des informations de dépendance et de compilation/installation de script, et vous pouvez construire des œufs, des tarballs dist, des tarballs binaires, etc.
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 quand il était en phase bêta, il est probablement évolué depuis. Il y a courbe d'apprentissage, comme avec Maven, mais il est aussi le plus puissant.
Les autres offres sont des sous-ensembles de Maven / zc.buildout:
- Setuptools: Création / installation de paquets
- Pip : Gestion des dépendances
- Virtualenv + virtualenvwrapper : gérer des environnements Python séparés (quelque chose dont vous N'avez pas besoin avec Java)
Vous connaissez probablement les scripts Ant et shell, donc vous pouvez également vérifier ces outils Python:
- Fabric or Finisseur: coureurs de tâches en ligne de commande avec des saveurs ajoutées. Ils wrap votre exécution en ligne de commande traditionnelle en python, et permet 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.). Fondamentalement, rien que vous ne pourriez pas faire avec les scripts shell, mais en python, c'est beaucoup moins cryptique.
Je voudrais souligner PyBuilder qui est fortement inspiré par 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 différencie les dépendances de construction et d'exécution) et, contrairement à maven, vous pouvez exécuter le cycle de vie de construction complet avec une seule commande.
Pour le déploiement, en plus de distutils/setuptoos, jetez également un oeil au paquet pip (utilise setuptools en dessous). Il peut restaurer les installations ayant échoué et également désinstaller (quelque chose qui manque à easy_install/setuptools). En outre, vous pouvez spécifier des dépendances via un fichier texte de configuration requise.
Il est bon d'utiliser virtualenv pour créer un environnement de projet autonome et utiliser pip / easy_install pour les dépendances de gestion.