146 votes

Python a-t-il un système de gestion de paquet/module ?

Semblable à la façon dont Ruby a rubygems où vous pouvez faire `` ?

Sur http://docs.python.org/install/index.html, je ne vois que les références à `` , mais qui vous oblige à trouver d’abord le package.

214voto

Colonel Panic Points 18390

Les progrès récents

Mars 2014: Bonne nouvelle! Python 3.4 livré avec Pip. Pip a longtemps été Python standard de facto du gestionnaire de package. Vous pouvez installer un package comme ceci:

pip install httpie

Wahey! C'est la meilleure caractéristique de toute version de Python. Il fait de la communauté de la richesse des bibliothèques accessibles à tous. Les débutants ne sont plus exclus de l'aide de la communauté des bibliothèques par l'interdiction de la difficulté de l'installation.

Toutefois, demeurent en suspens frustrations avec le Python emballage d'expérience. Cumulativement, ils font Python très peu accueillant pour les débutants. Aussi, la longue histoire de la négligence (ie. pas d'expédition avec un gestionnaire de paquets pour les 14 ans à partir de Python 2.0 pour Python 3.3) ont fait des dégâts à la communauté. Je décris les deux ci-dessous.

Circulation des frustrations

Il est important de comprendre que si les utilisateurs expérimentés sont en mesure de travailler autour de ces frustrations, ils sont d'importants obstacles pour les personnes de Python. En fait, la difficulté et l'utilisateur général-froideur est de nature à dissuader beaucoup d'entre eux.

PyPI site web est contre-utile

Chaque langue avec un gestionnaire de paquets est un fonctionnaire (ou quasi-officielle) de référentiel pour la communauté de télécharger et publier des packages. Python est le Python Package Index, PyPI. https://pypi.python.org/pypi

Permet de comparer ses pages avec ceux de RubyGems et Npm (Node package manager).

  1. https://rubygems.org/gems/rails RubyGems page pour le package rails
  2. https://www.npmjs.org/package/express Npm page pour le package express
  3. https://pypi.python.org/pypi/simplejson/ PyPI page pour le package simplejson

Vous verrez le RubyGems et Npm pages commencent tous deux par une ligne de description de l'emballage, puis les grandes amicale des instructions sur la façon de l'installer.

Pendant ce temps, malheur à tout malheureux Python utilisateur qui naïvement navigue sur PyPI. Sur https://pypi.python.org/pypi/simplejson/ , ils n'y trouveront pas de telles directives utiles. Il existe, cependant, un grand vert lien "Télécharger". Il n'est pas déraisonnable de le suivre. Aha, ils sur! Leur navigateur télécharge un .tar.gz le fichier. De nombreux utilisateurs de Windows ne peut même pas l'ouvrir, mais si elles persévèrent ils peuvent par la suite de l'extrait, puis exécutez setup.py et, finalement, avec l'aide de Google setup.py install. Certains vont abandonner et de réinventer la roue.

Bien sûr, tout cela est faux. Le plus simple pour installer un package avec un Pip de commande. Mais PyPI n'ai même pas mention de la Pip. Au lieu de cela, il les conduit vers le bas d'une archaïque et pénible chemin.

Erreur: Impossible de trouver vcvarsall.chauve-souris

Numpy est l'un de Python est la plupart des bibliothèques populaires. Essaie de l'installer avec le Pip, vous obtenez ce message d'erreur cryptique:

Erreur: Impossible de trouver vcvarsall.chauve-souris

Pour résoudre ce problème est l'une des questions les plus populaires sur le Débordement de la Pile. erreur: Impossible de trouver vcvarsall.chauve-souris

Peu de gens réussissent.

Pour comparaison, dans la même situation, Ruby imprime ce message, qui explique ce qui se passe et comment le résoudre.

Veuillez mettre à jour votre CHEMIN pour inclure des outils de construction ou de télécharger le DevKit de http://rubyinstaller.org/downloads et suivez les instructions à l' http://github.com/oneclick/rubyinstaller/wiki/Development-Kit

La publication de packages est dur

Ruby et Nodejs navire avec complet les gestionnaires de paquets Gem (depuis 2007) et Npm (depuis 2011), et ont nourri le partage de communautés centrées autour de GitHub. Npm fait de la publication de packages aussi facile que d'installer eux, il a déjà paquets de 64 ko. Les Gems Ruby listes 72k paquets. Le vénérable Python package index répertorie uniquement 41k.

L'histoire

Voler dans le visage de ses batteries inclus' devise, Python embarqué sans un gestionnaire de paquets jusqu'en 2014.

Jusqu'à ce que le Pep, le standard de facto était une commande easy_install. Il a été très insuffisante. L'a pas de commande pour désinstaller des paquets.

Le Pip a été une énorme amélioration. Il avait plus les caractéristiques de Ruby Gem. Malheureusement, le Pip a été-jusqu'à récemment-paradoxalement difficile à installer. En fait, le problème reste le top Python question sur Stack Overflow Comment installer pip sur windows?

63voto

Et juste pour fournir un contraste, il y a aussi des pip.

63voto

Thomas Bratt Points 10738

Le Python Package Index (PyPI) semble être la norme:

  • Pour installer un paquet: pip install MyProject
  • Pour mettre à jour un package pip install --upgrade MyProject
  • Pour corriger une version d'un paquet pip install MyProject==1.0

Vous pouvez installer le gestionnaire de paquets comme suit:

curl -O http://python-distribute.org/distribute_setup.py
python distribute_setup.py
easy_install pip

Références:

21voto

the Tin Man Points 69148

Comme Ruby et Perl développeur et de l'apprentissage-guy Python, je n'ai pas trouvé de easy_install ou pip être l'équivalent de rubygems ou cpan.

J'ai tendance à garder mes le développement de systèmes exécutant les dernières versions de ces modules, les développeurs de les mettre à jour, et de les congeler mes systèmes de production à l'ensemble des versions. Les deux rubygems et cpan facile de trouver des modules par faire la liste de ce qui est disponible, puis de l'installer et plus tard mettre à jour individuellement ou en vrac, si vous le souhaitez.

easy_install et pip le rendre facile pour installer un module, une FOIS que j'ai trouve par l'intermédiaire d'un navigateur de recherche ou l'a appris par d'autres moyens, mais ils ne me dites pas ce qui est disponible. Je peux explicitement le nom du module à être mis à jour, mais les applications ne me dites pas ce qui a été mis à jour et ils ne seront pas de mise à jour de tout en vrac, si je veux.

Ainsi, la fonctionnalité de base est-il de la pip et easy_install mais il y a des fonctionnalités manquantes que j'aimerais voir ce qui pourrait les rendre plus conviviale et plus facile à utiliser et à égalité avec cpan et rubygems.

12voto

tvon Points 1341

Non, il n’y a aucun système de gestion de paquet pour Python.

peut installer et mettre à jour des paquetages individuels, peut le faire, désinstaller les paquets et vous dire ce qui est actuellement installé (gel pip), mais ne pouvez mettre à niveau les packages en vrac, des mises à jour ou vous dire quels fichiers appartiennent à un package.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X