Je sais que pip
est un gestionnaire de paquets pour les paquets Python. Cependant, j'ai vu l'installation sur le site Web d'IPython utiliser conda
pour installer IPython.
Puis-je utiliser pip
pour installer IPython? Pourquoi devrais-je utiliser conda
comme autre gestionnaire de paquets Python alors que j'ai déjà pip
?
Quelle est la différence entre pip
et conda
?
Citant sur le blog Conda :
Après avoir été impliqués dans le monde python pendant si longtemps, nous sommes tous conscients de pip, easy_install et virtualenv, mais ces outils ne répondaient pas à toutes nos exigences spécifiques. Le problème principal est qu'ils sont concentrés sur Python, négligeant les dépendances de bibliothèques non-Python, telles que HDF5, MKL, LLVM, etc., qui n'ont pas de fichier setup.py dans leur code source et n'installent pas de fichiers sur le site de Python répertoire -packages.
Conda est donc un outil de packaging et un programme d’installation dont le but est de faire plus que ce que pip
fait; gérer les dépendances de bibliothèque en dehors des packages Python ainsi que les packages Python eux-mêmes. Conda crée également un environnement virtuel, comme le fait virtualenv
.
En tant que tel, Conda devrait être comparé à Buildout peut-être, à un autre outil qui vous permettra de gérer les tâches d’installation Python et celles qui ne le sont pas.
Étant donné que Conda introduit un nouveau format de conditionnement, vous ne pouvez pas utiliser pip
et Conda de façon interchangeable; pip
ne peut pas installer le format de package Conda. Vous pouvez utiliser les deux outils côte à côte (en installant pip
avec conda install pip
), mais ils n'interagissent pas non plus.
Voici un bref aperçu:
conda build
qui construit les paquetages à partir de la source, mais conda install
installe lui-même les choses à partir des paquets conda déjà construits. Dans les deux cas:
Les deux premiers points de conda sont vraiment ce qui le rend avantageux sur pip pour de nombreux paquets. Puisque pip est installé à partir du source, il peut être difficile d’installer le logiciel si vous ne pouvez pas compiler le code source (ceci est particulièrement vrai sous Windows, mais cela peut même être vrai sous Linux si les paquetages ont une bibliothèque difficile C ou FORTRAN dépendances). Conda s’installe à partir de fichiers binaires, ce qui signifie que quelqu'un (par exemple, Continuum) a déjà effectué le travail ardu de compilation du package. L'installation est donc facile.
Il existe également des différences si vous souhaitez créer vos propres packages. Par exemple, pip est construit sur setuptools, tandis que conda utilise son propre format, ce qui présente certains avantages (comme être statique et, encore une fois, agnostique Python).
Les autres réponses donnent une description juste des détails, mais je voudrais souligner quelques points importants.
pip est un gestionnaire de paquets qui facilite l'installation, la mise à niveau et la désinstallation de paquets python. Cela fonctionne aussi avec les environnements virtuels python.
conda est un gestionnaire de paquets pour tous les logiciels (installation, mise à niveau et désinstallation). Cela fonctionne également avec les environnements virtuels système.
L'un des objectifs de la conception de conda est de faciliter la gestion des paquets pour l'ensemble de la pile de logiciels requise par les utilisateurs, dont une ou plusieurs versions de python ne peuvent être qu'une petite partie. Cela inclut les bibliothèques de bas niveau, telles que l’algèbre linéaire, les compilateurs, tels que mingw sous Windows, les éditeurs, les outils de contrôle de version tels que Hg et Git ou tout ce qui nécessite une distribution et une gestion}.
Pour la gestion des versions, pip vous permet de basculer entre plusieurs environnements python et de les gérer.
Conda vous permet de basculer et de gérer plusieurs environnements polyvalents dans lesquels plusieurs autres éléments peuvent varier en nombre de versions, tels que les bibliothèques C, les compilateurs, les suites de tests, les moteurs de base de données, etc.
Conda n'est pas centré sur Windows, mais sous Windows, il s'agit de loin de la solution supérieure actuellement disponible lorsque des packages scientifiques complexes nécessitant une compilation doivent être installés et gérés.
Je veux pleurer quand je pense au temps que j'ai perdu à essayer de compiler plusieurs de ces paquets via pip sur Windows, ou à déboguer des sessions pip install
ayant échoué lorsque la compilation était requise.
Enfin, Continuum Analytics héberge également (gratuitement) binstar.org (maintenant appelé anaconda.org ) afin de permettre aux développeurs de packages standard de créer leurs propres piles logicielles personnalisées (construites!) Que leurs packages. les utilisateurs pourront conda install
partir de.
Pour ne pas vous embrouiller davantage, .__, mais vous pouvez également utiliser pip dans votre environnement Conda, qui valide les commentaires des gestionnaires généraux par rapport à python ci-dessus.
conda install -n testenv pip
source activate testenv
pip <pip command>
vous pouvez également ajouter pip aux packages par défaut de n'importe quel environnement afin qu'il soit présent à chaque fois afin que vous n'ayez pas à suivre l'extrait de code ci-dessus.
Citation de Conda for Data Science article sur le site web du continuum:
Conda vs pip
Les programmeurs Python sont probablement familiarisés avec pip pour télécharger des packages à partir de PyPI et gérer leurs besoins. Bien que conda et pip soient tous deux des gestionnaires de paquets, ils sont très différents:
- Pip est spécifique aux packages Python et conda est indépendant du langage, ce qui signifie que nous pouvons utiliser conda pour gérer les packages à partir de n’importe quel langage Pip compile à partir de la source et conda installe les fichiers binaires, ce qui supprime la charge de la compilation
- Conda crée des environnements agnostiques en langage de manière native alors que pip s'appuie sur virtualenv pour gérer uniquement les environnements Python Bien qu'il soit recommandé de toujours utiliser les packages conda, conda inclut également pip, vous n'avez donc pas à choisir entre les deux. Par exemple, pour installer un paquet python qui n'a pas de paquet conda, mais est disponible via pip, exécutez simplement, par exemple:
conda install pip
pip install gensim
Pour les utilisateurs de Windows
La situation des outils d’emballage "standard" s’améliore récemment:
sur le pypi lui-même, il y avait maintenant 48% de paquets de roues à partir de septembre. 11e 2015 (contre 38% en mai 2015 et 24% en septembre 2014),
le format de roue est maintenant pris en charge immédiatement avec Python 2.7.9,
La situation des outils de conditionnement "standard" + "tweaks" s'améliore également:
vous pouvez trouver presque tous les packages scientifiques sur format roue sur http://www.lfd.uci.edu/~gohlke/pythonlibs ,
le projet mingwpy peut apporter un jour un paquet «compilation» aux utilisateurs de Windows, permettant d’installer tout depuis la source en cas de besoin.
L'emballage "Conda" reste meilleur pour le marché qu'il dessert et met en évidence les domaines dans lesquels le "standard" devrait s'améliorer.
(de plus, la spécification de dépendance multi-effort, dans le système de roue standard et dans le système de conda, ou de construction, n’est pas très pythonique, il serait bien que toutes ces techniques de «noyau» d’emballage puissent converger, via une sorte de PEP)
Citant de Conda: Mythes et idées fausses (description détaillée):
...
Réalité: Conda et pip servent différents objectifs et ne concurrencent directement que dans un petit sous-ensemble de tâches, à savoir l'installation de packages Python dans des environnements isolés.
Pip, qui signifie P ip I nstalls P ackages, est le gestionnaire de paquets officiellement approuvé par Python, et est le plus souvent utilisé pour installer des paquets publiés sur Python. Indice de package (PyPI). Pip et PyPI sont tous deux régis et pris en charge par Python Packaging Authority (PyPA).
En bref, pip est un gestionnaire généraliste pour les packages Python; conda est un gestionnaire d’environnement multi-plateformes indépendant de la langue. Pour l’utilisateur, la distinction la plus saillante est probablement la suivante: pip installe les packages Python dans n’importe quel environnement; conda installe n'importe quel paquet dans les environnements conda. Si vous ne faites qu'installer des packages Python dans un environnement isolé, conda et pip + virtualenv sont généralement interchangeables, modulo une différence dans le traitement des dépendances et la disponibilité des packages. Par environnement isolé, j'entends un conda-env ou virtualenv, dans lequel vous pouvez installer des packages sans modifier votre installation système Python.
Même en mettant de côté le Mythe n ° 2, si nous nous concentrons uniquement sur l’installation de paquets Python, conda et pip servent différents publics et différentes finalités. Si vous voulez, par exemple, gérer les packages Python dans une installation système existante de Python, conda ne peut pas vous aider: de par sa conception, il ne peut installer que des packages dans des environnements Conda. Si vous voulez, par exemple, travailler avec les nombreux packages Python qui reposent sur des dépendances externes (NumPy, SciPy et Matplotlib sont des exemples courants), tout en effectuant un suivi significatif de ces dépendances, pip ne peut pas vous aider: de par sa conception, gère les packages Python et uniquement les packages Python.
Conda et pip ne sont pas des concurrents, mais des outils axés sur différents groupes d'utilisateurs et modes d'utilisation.
pip
est pour Python seulement
conda
est seulement pour Anaconda + d'autres paquets scientifiques comme les dépendances R etc. Tout le monde n'a pas besoin d'Anaconda qui est déjà fourni avec Python. Anaconda est principalement destiné à ceux qui apprennent à la machine/en profondeur, etc. Le développeur Python occasionnel ne pourra pas exécuter Anaconda sur son ordinateur portable.
Puis-je utiliser pip pour installer iPython?
Bien sûr, les deux (première approche à la page)
pip install ipython
et (troisième approche, la seconde est conda
)
Vous pouvez télécharger manuellement IPython depuis GitHub ou PyPI. Pour en installer un de ces versions, décompressez-le et exécutez ce qui suit à partir du niveau supérieur répertoire source utilisant le terminal:
pip install .
sont les moyens officiellement recommandés pour installer .
Pourquoi devrais-je utiliser conda comme un autre gestionnaire de paquets Python alors que j'ai déjà pip?
Comme dit ici :
Si vous avez besoin d'un package spécifique, peut-être uniquement pour un projet, ou si vous devez partager le projet avec quelqu'un d'autre, conda semble plus approprié.
Conda surpasse pip in ( YMMV )
Quelle est la difference entre pip et conda?
Tous les autres ont largement répondu à cette question.
J'ai peut-être trouvé une autre différence de nature mineure. J'ai mes environnements python sous /usr
plutôt que /home
ou peu importe. Pour l'installer, je devrais utiliser Sudo install pip
. Pour moi, l'effet secondaire non désiré de Sudo install pip
était légèrement différent de ce qui est largement rapporté ailleurs: après cela, j'ai dû exécuter python
avec Sudo
afin d'importer l'un des packages Sudo
-installés. J'ai renoncé à cela et j'ai finalement trouvé que je pouvais utiliser Sudo conda
pour installer des packages dans un environnement sous /usr
qui était ensuite importé normalement sans nécessiter l'autorisation Sudo
pour python
. J'ai même utilisé Sudo conda
pour réparer une pip
cassée plutôt que d'utiliser Sudo pip uninstall pip
ou Sudo pip --upgrade install pip
.