Python a-t-il un système de gestion de paquets/modules?

est-ce que Python a un système de gestion de paquets/modules, similaire à comment Ruby a rubygems où vous pouvez faire gem install packagename ?

sur " installation de Modules Python , Je ne vois que des références à python setup.py install , mais cela exige que vous trouviez le paquet en premier.

137
demandé sur Peter Mortensen 2010-03-13 03:29:17

11 réponses

progrès récents

mars 2014 : bonne nouvelle! Python 3.4 livré avec le Pip. Pip est depuis longtemps le gestionnaire de paquets standard de Python. Vous pouvez installer "1519150920 un" paquet comme ceci:

pip install httpie

Wahey! C'est la meilleure caractéristique de toute version de Python. Elle rend la richesse des bibliothèques de la communauté accessible à tous. Les débutants ne sont plus exclus utiliser les bibliothèques de la communauté par la difficulté prohibitive de la configuration.

cependant , il reste un certain nombre de frustrations en suspens avec L'expérience d'empaquetage Python. Cumulativement, ils rendent Python très peu accueillant pour les débutants. En outre, la longue histoire de négligence (c.-à-d. ne pas envoyer avec un gestionnaire de paquets pendant 14 ans de Python 2.0 à Python 3.3) a causé des dommages à la communauté. Je décris les deux ci-dessous.

en circulation frustrations

il est important de comprendre que bien que les utilisateurs expérimentés soient capables de contourner ces frustrations, ce sont des obstacles importants pour les personnes nouvelles en Python. En fait, la difficulté et l'inamovibilité générale de l'utilisateur sont susceptibles de dissuader beaucoup d'entre eux.

le site Web du PyPI est contre-utile

chaque langue avec un gestionnaire de paquets a un dépôt officiel (ou quasi-officiel) pour la communauté à télécharger et publier des packages. Python a L'Index des paquets Python, PyPI. https://pypi.python.org/pypi

comparons ses pages avec celles de RubyGems et Npm (the Node package manager).

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

vous verrez les pages RubyGems et Npm toutes les deux commencer par une description d'une ligne du paquet, puis de grandes instructions conviviales comment l'installer.

pendant ce temps, malheur à n'importe quel utilisateur de Python malheureux qui navigue naïvement vers PyPI. Sur https://pypi.python.org/pypi/simplejson/ , ils ne trouveront pas de telles instructions utiles. Il y a cependant un grand lien Vert "Download". Il n'est pas déraisonnable de le suivre. Aha, ils sur! Leur navigateur télécharge un fichier .tar.gz . De nombreux utilisateurs de Windows ne peuvent même pas l'ouvrir, mais s'ils persévèrent, ils peuvent éventuellement l'extraire, puis exécuter setup.py et finalement avec L'aide de Google setup.py install . Certains abandonneront et réinventeront la roue..

bien sûr, tout cela est faux. Le plus facile la façon d'installer un paquet est avec une commande Pip. Mais PyPI n'a même pas parlé de Pip. Au lieu de cela, il les a conduits sur une voie archaïque et fastidieuse.

Erreur

: impossible de trouver vcvarsall.MTD

Numpy est l'une des bibliothèques les plus populaires de Python. Essayez de l'installer avec 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 Stack Overflow: " 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 corriger:

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

Publication de packages est dur

Ruby et Nodejs sont équipés de gestionnaires de paquets complets, Gem (depuis 2007) et Npm (depuis 2011), et ont nourri des communautés de partage centrées autour de GitHub. Npm rend publishing packages aussi facile que les installer, il a déjà paquets 64k . RubyGems listes 72k paquets . L'index vénérable des paquets Python liste seulement 41k .

histoire

Voler dans le visage de son " piles " la devise, Python embarqué sans un gestionnaire de paquets jusqu'en 2014.

Jusqu'à Pip, la norme de facto était une commande easy_install . C'était lamentablement inadéquat. L'a pas de commande pour désinstaller des paquets.

Pip a été une énorme amélioration. Il avait la plupart des caractéristiques de la gemme de Ruby. Malheureusement, Pip était--jusqu'à récemment -- ironiquement difficile à installer. En fait, le problème reste une question en haut de Python sur le débordement de la pile: " comment installer pip sur Windows? "

208
répondu Colonel Panic 2017-05-23 11:47:27

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

  • à installer un paquet: pip install MyProject
  • à update un paquet pip install --upgrade MyProject
  • à fixer une version d'un colis 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

, les Références:

64
répondu Thomas Bratt 2012-09-02 09:13:00

et juste pour donner un contraste, il y a aussi pip .

63
répondu Ignacio Vazquez-Abrams 2010-03-13 00:33:40

en tant que développeur et apprenant de Ruby et Perl-Python, je n'ai pas trouvé easy_install ou pip équivalent à RubyGems ou CPAN.

j'ai tendance à laisser mes systèmes de développement exécuter les dernières versions des modules au fur et à mesure que les développeurs les mettent à jour, et à geler mes systèmes de production aux versions prédéfinies. RubyGems et CPAN permettent de trouver facilement les modules en énumérant ce qui est disponible, puis de les installer et de les mettre à jour plus tard, individuellement ou en bloc si vous le souhaitez.

easy_install et pip facilitent l'installation D'un module une fois que je l'ai localisé grâce à une recherche par navigateur ou que je l'ai appris par d'autres moyens, mais ils ne me disent pas ce qui est disponible. Je peux nommer explicitement le module à mettre à jour, mais les applications ne me diront pas ce qui a été mis à jour et elles ne vont pas tout mettre à jour en masse si je veux.

ainsi, la fonctionnalité de base est là dans pip et easy_install mais il y a des traits manquants que je voudrais voir qui les rendraient plus convivial et plus facile à utiliser et sur le même pied que le CPAN et le RubyGems.

21
répondu the Tin Man 2014-12-09 15:59:04

il y en a au moins deux, easy_install et son successeur pip .

13
répondu Wolph 2016-01-17 11:50:14

au moins fin 2014, Continuum Analytics' Anaconda distribution Python avec le gestionnaire de paquets conda devrait être considéré. Il résout la plupart des problèmes graves que les gens rencontrent avec Python en général (gestion des différentes versions de Python, mise à jour des versions de Python, gestion des paquets, environnements virtuels, compatibilité Windows/Mac) dans un téléchargement cohérent.

il vous permet de faire à peu près beaucoup tout ce que vous voulez avec Python sans avoir à changer le système. Ma prochaine solution préférée est pip + virtualenv, mais vous devez installer virtualenv dans votre système Python (et votre système Python peut ne pas être la version que vous voulez), ou construire à partir de la source . Anaconda fait tout ce processus, le clic d'un bouton, ainsi que l'ajout d'un tas d'autres fonctionnalités.

11
répondu anderspitman 2017-05-04 22:16:05

ce serait easy_install .

6
répondu Kirk Strauser 2010-03-13 00:31:31

ça s'appelle des setuptools. Vous l'exécutez avec la commande" easy_install".

vous pouvez trouver le répertoire à http://pypi.python.org /

6
répondu Chris Long 2010-03-13 00:32:51

sur Windows Installer http://chocolatey.org / puis

choco install python

ouvrir une nouvelle cmd-fenêtre avec le chemin mis à jour. Suivant, faites

choco install pip

après cela vous pouvez

pip install pyside
pip install ipython
...
4
répondu hansvb 2014-06-06 16:11:16

je ne vois pas soit MacPorts ou Homebrew mentionné dans d'autres réponses ici, mais depuis je ne vois mentionné ailleurs sur un Débordement de Pile pour les questions, je vais ajouter mes propres 0,02$US que beaucoup de gens semblent considérer MacPorts non seulement comme un gestionnaire de paquets pour les paquets en général (comme d'aujourd'hui, ils liste 16311 packages/ports, 2931 matching "python", mais seulement pour les Macs), mais aussi comme un décent (peut-être mieux) gestionnaire de paquets pour les paquets/modules Python:

Question

"...Quelle est la méthode utilisée par les développeurs Mac python pour gérer leurs modules?"

réponses

SciPy

" les Macs (contrairement à Linux) ne viennent pas avec un gestionnaire de paquets, mais il y a quelques gestionnaires de paquets populaires que vous pouvez installer. Macports..."

je me demande encore s'il faut utiliser Macport moi-même, mais en ce moment je penche dans cette direction.

4
répondu Osteoboon 2017-05-23 10:31:31

puisque personne n'a mentionné pipenv ici, je voudrais décrire mes vues pourquoi tout le monde devrait l'utiliser pour gérer les paquets python.

comme @ColonelPanic l'a mentionné, il y a plusieurs problèmes avec le Python Package Index et avec pip et virtualenv aussi.

Pipenv résout la plupart des les problèmes avec pip et fournit des fonctionnalités supplémentaires également.

Pipenv features

Pipenv est destiné à remplacer pip et virtualenv, ce qui signifie que pipenv créera automatiquement un environnement virtuel distinct pour chaque projet, évitant ainsi les conflits entre différentes versions de Python/paquets pour différents projets.

  • permet des constructions vraiment déterministes, tout en spécifiant facilement seulement ce que vous voulez.
  • génère et vérifie les hachages de fichiers pour les dépendances verrouillées.
  • installe automatiquement les Pythons requis, si pyenv est disponible.
  • trouve automatiquement votre maison de projet, récursivement, en recherchant un Pipfile.
  • génère automatiquement un fichier PIP s'il n'en existe pas.
  • crée automatiquement un virtualenv dans un emplacement standard.
  • automatiquement ajoute/supprime des paquets à un Pipfile lorsqu'ils ne sont pas installés.
  • charge automatiquement .les fichiers env, s'ils existent.

si vous avez travaillé sur des projets python auparavant, vous réaliseriez que ces fonctionnalités rendent la gestion des paquets beaucoup plus facile.

Autres Commandes

  • check vérifie les vulnérabilités de sécurité et affirme que la PPE 508 exigences sont respectées par le courant environnement. ( qui je pense est une grande caractéristique surtout après cela - paquets malveillants sur PyPi )
  • graph vous montrera un graphique de dépendances, de vos dépendances installées.

vous pouvez en savoir plus ici - Pipenv .

Installation

vous pouvez trouver la documentation d'installation ici

P.S.: si vous avez aimé travailler avec le paquet Python requêtes , vous seriez heureux de savoir que pipenv est par le même développeur Kenneth Reitz

"
3
répondu Vaulstein 2017-12-14 17:04:54