web-dev-qa-db-fra.com

Équivalent Maven pour python

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

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

Merci.

127
Enno Shioji

Python utilise distutils et setuptools pour la dépendance et l’emballage.

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 contient des informations de dépendance et de compilation/installation de scripts, et vous pourrez créer des oeufs, des archives dist, des archives binaires, etc.

61
Daniel Kluev

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 repose é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.

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

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

  • Fabric ou Paver : exécuteurs de tâches en ligne de commande avec saveurs ajoutées. Ils encapsulent votre exécution de ligne de commande traditionnelle en python et permettent de gérer différentes tâches de manière plus puissante (dépendances des tâches, interprétation de la sortie, exécution de commandes sur un serveur distant, etc.). En gros, rien n’est impossible avec les scripts Shell, mais en python, c’est beaucoup moins crypté.
33
Tuukka Mustonen

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

Il existe un plugin pour la gestion des dépendances (utilise pip sous le capot et fait la distinction entre les dépendances de construction et d'exécution) et, comme dans maven, vous pouvez exécuter le cycle de vie complet de la génération à l'aide d'une seule commande.

14
user245678

Pour le déploiement, en plus de distutils/setuptoos, jetez également un coup d'oeil au paquet de pip (utilise setuptools en dessous). Il peut restaurer les installations ayant échoué et également désinstaller (un élément manquant dans easy_install/setuptools). En outre, vous pouvez spécifier des dépendances via un fichier texte d'exigences.

8
ars

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.

5
Ning Sun