Python a-t-il un système de gestion de packages / modules, similaire à la façon dont Ruby a des rubygems où vous pouvez le faire gem install packagename
?
Lors de l' installation des modules Python , je ne vois que des références à python setup.py install
, mais cela vous oblige à trouver d'abord le package.
Réponses:
Progrès récents
Mars 2014 : Bonne nouvelle! Python 3.4 est livré avec Pip. Pip est depuis longtemps le gestionnaire de paquets standard de Python. Vous pouvez installer un package comme celui-ci:
Wahey! C'est la meilleure fonctionnalité de toute version de Python. Cela rend la richesse des bibliothèques de la communauté accessible à tous. Les débutants ne sont plus exclus de l'utilisation des bibliothèques communautaires en raison de la difficulté prohibitive de la configuration.
Cependant , il reste un certain nombre de frustrations exceptionnelles avec l'expérience d'empaquetage Python. Cumulativement, ils rendent Python très peu accueillant pour les débutants. De plus, la longue histoire de négligence (c.-à-d. Ne pas être expédiée 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.
Des frustrations exceptionnelles
Il est important de comprendre que si les utilisateurs expérimentés sont capables de contourner ces frustrations, ils constituent des obstacles importants pour les nouveaux utilisateurs de Python. En fait, la difficulté et la non-convivialité générale en dissuaderont probablement beaucoup.
Le site Web de PyPI est contre-utile
Chaque langue avec un gestionnaire de packages a un référentiel officiel (ou quasi-officiel) pour que la communauté télécharge et publie des packages. Python a l'index de package Python, PyPI. https://pypi.python.org/pypi
Comparons ses pages avec celles de RubyGems et Npm (le gestionnaire de paquets Node).
rails
express
simplejson
Vous verrez que les pages RubyGems et Npm commencent toutes les deux par une description en une ligne du package, puis de grandes instructions conviviales pour l'installer.
En attendant, malheur à tout utilisateur malheureux de Python qui navigue naïvement vers PyPI. Sur https://pypi.python.org/pypi/simplejson/ , ils ne trouveront pas d'instructions utiles. Il existe cependant un grand lien vert «Télécharger». Il n'est pas déraisonnable de le suivre. Aha, ils cliquent! Leur navigateur télécharge un
.tar.gz
fichier. De nombreux utilisateurs de Windows ne peuvent même pas l'ouvrir, mais s'ils persévèrent, ils peuvent éventuellement l'extraire, puis l'exécutersetup.py
et éventuellement avec l'aide de Googlesetup.py install
. Certains abandonneront et réinventeront la roue.Bien sûr, tout cela est faux. Le moyen le plus simple d'installer un package est d'utiliser une commande Pip. Mais PyPI n'a même pas mentionné Pip. Au lieu de cela, cela les a conduits sur un chemin archaïque et fastidieux.
Erreur: impossible de trouver vcvarsall.bat
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:
Essayer de résoudre ce problème est l'une des questions les plus courantes sur Stack Overflow: " erreur: impossible de trouver vcvarsall.bat "
Peu de gens réussissent.
A titre de comparaison, dans la même situation, Ruby imprime ce message, qui explique ce qui se passe et comment y remédier:
La publication de packages est difficile
Ruby et Nodejs sont livrés avec des gestionnaires de packages complets, Gem (depuis 2007) et Npm (depuis 2011), et ont nourri des communautés de partage centrées autour de GitHub. Npm rend la publication de packages aussi simple que de les installer, il contient déjà 64k packages . RubyGems répertorie 72k packages . Le vénérable index des packages Python ne répertorie que 41k .
L'histoire
Faisant fi de sa devise « batteries incluses », Python a été livré sans gestionnaire de colis jusqu'en 2014.
Jusqu'à Pip, la norme de facto était une commande
easy_install
. C'était terriblement insuffisant. Il n'y avait aucune commande pour désinstaller les packages.Pip était une énorme amélioration. Il avait la plupart des caractéristiques de Ruby's Gem. Malheureusement, Pip était - jusqu'à récemment - ironiquement difficile à installer. En fait, le problème reste une des principales questions Python sur Stack Overflow: " Comment installer pip sur Windows? "
la source
gem install X
semble juste fonctionner sur toutes les plates-formes. Alors, comment ont-ils géré cela pour les gemmes qui nécessitent la compilation de code C sous Windows?L'index de package Python (PyPI) semble être standard:
pip install MyProject
pip install --upgrade MyProject
pip install MyProject==1.0
Vous pouvez installer le gestionnaire de packages comme suit:
Références:
la source
Et juste pour donner un contraste, il y a aussi pip .
la source
En tant que développeur Ruby et Perl et apprenant Python, je n'ai pas trouvé que easy_install ou pip était l'équivalent de RubyGems ou CPAN.
J'ai tendance à garder mes systèmes de développement exécutant 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 définies. RubyGems et CPAN facilitent la recherche de modules en répertoriant ce qui est disponible, puis installez-les et mettez-les à jour ultérieurement individuellement ou en masse si vous le souhaitez.
easy_install et pip facilitent l'installation d'un module UNE FOIS que je l'ai localisé via une recherche de navigateur ou que je l'ai appris par d'autres moyens, mais ils ne me diront 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 ne mettront pas à jour tout en vrac si je le souhaite.
Ainsi, la fonctionnalité de base est là dans pip et easy_install, mais il manque des fonctionnalités que j'aimerais voir qui les rendraient plus conviviales et plus faciles à utiliser et à égalité avec CPAN et RubyGems.
la source
Il y en a au moins deux, easy_install et son successeur pip .
la source
Au moins fin 2014, la distribution Anaconda Python de Continuum Analytics avec le gestionnaire de packages conda devrait être envisagée. 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 packages, environnements virtuels, compatibilité Windows / Mac) en un seul téléchargement cohérent.
Cela vous permet de faire à peu près tout ce que vous pourriez souhaiter avec Python sans avoir à changer le système du tout. Ma prochaine solution préférée est pip + virtualenv, mais vous devez soit installer virtualenv dans votre système Python (et votre système Python n'est peut-être pas la version que vous souhaitez), soit construire à partir des sources . Anaconda rend tout ce processus en un clic, ainsi que l'ajout de nombreuses autres fonctionnalités.
la source
Ce serait easy_install .
la source
easy_install
, veuillez d'abord vérifier les dates. C'était un conseil valable lorsqu'il a été donné il y a près de 7 ans . Je ne pense pas que nous, les répondeurs, reviendrons régulièrement sur cette question pour mettre à jour, donc le vote négatif est ridicule.Cela s'appelle setuptools. Vous l'exécutez avec la commande "easy_install".
Vous pouvez trouver le répertoire sur http://pypi.python.org/
la source
Je ne vois ni MacPorts ni Homebrew mentionnés dans d'autres réponses ici, mais comme je les vois mentionnés ailleurs sur Stack Overflow pour des questions connexes, j'ajouterai mon propre 0,02 $ US que beaucoup de gens semblent considérer MacPorts comme non seulement un package gestionnaire pour les paquets en général (à ce jour, ils répertorient 16311 paquets / ports, 2931 correspondant à «python», mais uniquement pour les Mac), mais aussi comme gestionnaire de paquets décent (peut-être meilleur) pour les paquets / modules Python:
Question
"... quelle est la méthode que les développeurs Mac Python utilisent pour gérer leurs modules?"
Réponses
"MacPorts est parfait pour Python sur Mac."
"Le meilleur moyen est d'utiliser MacPorts."
"Je préfère MacPorts ..."
"Avec ma configuration MacPorts ..."
"J'utilise MacPorts pour installer ... des modules tiers suivis par MacPorts"
SciPy
"Les Mac (contrairement à Linux) ne sont pas livrés avec un gestionnaire de paquets, mais vous pouvez installer quelques gestionnaires de paquets populaires. Macports ..."
Je suis toujours en train de débattre sur l'opportunité d'utiliser ou non MacPorts moi-même, mais pour le moment, je penche dans cette direction.
la source
pip install <your_favorite_package>
Sous Windows, installez http://chocolatey.org/ puis
Ouvrez une nouvelle cmd-window avec le PATH mis à jour. Ensuite, faites
Après cela, vous pouvez
la source
Puisque personne n'a mentionné pipenv ici, j'aimerais décrire mon point de vue sur les raisons pour lesquelles tout le monde devrait l'utiliser pour gérer les packages python.
Comme @ColonelPanic l'a mentionné, il y a plusieurs problèmes avec l' index des packages Python et avec pip et virtualenv également.
Pipenv résout la plupart des problèmes avec pip et fournit également des fonctionnalités supplémentaires.
Fonctionnalités de Pipenv
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 les différentes versions de python / versions de package pour différents projets.
Si vous avez déjà travaillé sur des projets python, vous vous rendrez compte que ces fonctionnalités facilitent considérablement la gestion des packages.
Autres commandes
check
vérifie les vulnérabilités de sécurité et affirme que les exigences PEP 508 sont satisfaites par l'environnement actuel. ( ce qui, à mon avis, est une fonctionnalité intéressante, 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
PS: Si vous avez aimé travailler avec les requêtes Python Package , vous seriez heureux de savoir que pipenv est du même développeur Kenneth Reitz
la source
En 2019, la poésie est le gestionnaire de packages et de dépendances que vous recherchez.
https://github.com/sdispater/poetry#why
C'est moderne, simple et fiable.
la source
La poésie est ce que vous recherchez. Il s'occupe de la gestion des dépendances, des environnements virtuels, de l'exécution.
la source