[2014-10 TL;DR:
distribute
est mort, utilisez pip
, la nouvelle - setuptools
, et, pour les distributions binaires, wheels
. Plus ci-dessous.]
[Réponse originale à cette question]
Distribuer est est un fork de l'ancienne setuptools donc presque tous les commentaires qui suivent s'appliquent à Distribuer et setuptools. Setuptools était une tentative de remplir un certain nombre de trous dans le, même âgés Python standard library package, Distutils. Setuptools l'ajout de fonctions comme les téléchargements automatiques de paquets par l'intermédiaire d'une interface de ligne de commande, easy_install
, et un certain degré de gestion de la dépendance. Cependant, un segment de la communauté Python est d'avis que setuptools est trop intrusive et a trop de derrière-le-scènes de la magie pour certaines de ses fonctionnalités.
pip
est d'un plus haut niveau de l'interface sur le dessus de setuptools ou de Distribuer. Il les utilise pour effectuer de nombreuses de ses fonctions, mais évite certains de leurs plus controversées, comme zippé œufs. pip
fournit également des fonctionnalités ne sont pas disponibles en setuptools
, comme une commande de désinstallation et la capacité à définir fixe un ensemble d'exigences et de reproduire de manière fiable un ensemble de paquets. Il y a une plus complète des fonctionnalités de comparaison ici.
Pourquoi sont-ils si nombreux composants (et il y a plus, comme buildout
)? Beaucoup de raisons: les solutions doivent travailler à travers toutes les grandes plates-formes sur lesquelles Python est pris en charge (c'est à dire Unix-y, Windows, Mac OS X), de sorte que la construction et l'installation présente d'un complexe ensemble de problèmes; comme beaucoup de projets open source, Python est essentiellement de bénévoles et de nombreux développeurs ne sont pas du tout intéressée par l'emballage et les problèmes d'installation; il y a un conservatisme naturel à propos de l'ajout des nouveaux grands prouvée fonctionnalités de la bibliothèque standard; les différences d'opinions, etc etc.
À l'heure actuelle, il y a un projet en cours pour fournir un remplacement pour Distutils et, éventuellement, de quelques de la hausse du niveau des add-ons. Il est prévu pour être publié dans le Python 3.3 de la bibliothèque standard que l' packaging
paquet et comme un add-on pour les anciennes versions de Python comme Distutils2
.
Pour résumer, la relation actuelle est:
pip -> [ setuptools | Distribute ] -> Distutils -> Python core
|
3rd party packages | included in Python
|
Mise à JOUR (2012-07): Avant le code de fonction de coupure pour Python 3.3, il a été décidé qu' packaging
n'était pas encore prête pour la libération de la bibliothèque standard, de sorte qu'il a été retiré de la version 3.3. Le travail se poursuivra sur Distutils2
disponible sur PyPI et sur ce qui sera inclus dans la bibliothèque standard de Python 3.4.
Mise à JOUR (2014-10): Il y a eu d'autres changements dans le monde du packaging de Python depuis cette réponse a été la dernière mise à jour.
Plus important encore, depuis la mi-2013, le fossé entre setuptools
et
distribute
a été guéris et le développement de l'activité a été fusionné
dans un nouveau setuptools
du projet. distribute
est maintenant
obsolète et n'est plus maintenu; utiliser le nouveau setuptools
au lieu
mais n'utilisez pas de son easy_install
comme un programme d'installation.
pip
est devenu de facto et béni outil d'installation (pour Python
les paquets qui n'est pas autrement pourvu par votre plate-forme de package manager)
soit dans ou à l'extérieur des environnements virtuels (virtualenv
ou pyvenv
).
À la place de la vieille - setuptools
bdist eggs
, wheels
ont
devenir la bienheureuse binaire format de distribution pour les paquets Python.
Comme de Python 3.4, une version de pip
avec wheel
soutien
est maintenant livré avec l'officiel python.org
binaire installateurs et
les paquets source et il est prévu qu' pip
sera également
inclus dans la prochaine version de maintenance de Python 2.7 (2.7.9).
Distutils2
et packaging
sont désormais en sommeil.
Plus de détails dans la nouvelle Distribution des Modules Python section du Python 3 docs et le nouveau Packaging de Python Guide de l'Utilisateur.