É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.

117
demandé sur Enno Shioji 2010-07-24 10:41:38

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.

57
répondu Daniel Kluev 2012-02-09 14:15:42

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:

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.
32
répondu Tuukka Mustonen 2017-05-08 10:21:00

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.

12
répondu user245678 2014-05-01 17:04:54

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.

8
répondu ars 2010-07-24 07:01:19

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.

5
répondu Ning Sun 2010-12-30 06:37:22