La différence entre conda install et pip install.Comparaison de fonctions, etc. [Python]

2019er mars 5

Jusqu'à présent, l'installation de pip n'était reconnue comme un substitut que lorsque l'installation de conda n'était pas disponible.Si le package que je voulais n'était pas dans le référentiel Anaconda, je l'ai installé avec pip, et à un moment donné, l'environnement a été corrompu en raison de ces conflits.

L'environnement Anaconda a été corrompu lorsque je pensais que Jupyter Notebook ne démarrerait pas

Comme c'était une excellente opportunité, j'ai étudié la différence entre pip et conda, je vais donc le laisser comme un mémorandum ci-dessous.

Différence entre conda et pip

Qu'est-ce que Conda

En un mot, il s'agit d'un gestionnaire de packages qui est livré en standard avec Anaconda / Miniconda et est un système de gestion environnementale.

Anaconda est une plate-forme qui fournit des packages pour la science des données (si vous venez découvrir la différence entre conda et pip, vous le savez déjà). Vous pouvez installer en même temps des langages de programmation pour la science des données tels que Python et R, ainsi que les packages requis pour l'analyse statistique et l'apprentissage automatique, et vous pouvez immédiatement créer un environnement qui utilise Python.
Il existe également une Miniconda qui a la configuration minimale.

conda ne fonctionne que lorsqu'il est installé par l'installateur Anaconda ou l'installateur miniconda. Même si vous installez conda dans l'environnement de python + pip, vous ne pouvez pas l'utiliser comme sur la distribution Anaconda.

Qu'est-ce que pip

Un installateur de package python standard et un système de gestion de packages fourni avec l'installation de python pur.

Il télécharge et installe des packages à partir de Python Package Index (PyPI), un référentiel pour les langages de programmation Python.

Différences dans chaque fonction

Les rôles de conda et pip sont résumés dans un tableau simple.

機能compterpépin
Installation et gestion des packages
Changer de version de PythonPas possible (remplacer par pipenv, pyenv)
Gestion de l'environnement virtuelPas possible (remplacer par pipenv, virtualenv, venv)

Puisque conda est également un système de gestion d'environnement, vous pouvez créer un environnement virtuel, changer la version Python en 3.7 ou passer à 2.7.

Avec pip, vous installerez et utiliserez des packages tels que pyenv (contrôle de version) et venv (gestion d'environnement virtuel).

Récemment, pipenv est sorti, et il semble qu'il a une fonction qui peut presque remplacer conda.

conda install et pip install

Les commandes pour conda install et pip install sont similaires, mais le mécanisme d'installation des packages semble être assez différent. Il existe un tableau de comparaison facile à comprendre sur le site anaconda.com, je vais donc le citer (japonais et modifié pour le rendre plus facile à comprendre).

installation de condainstaller pip
Format du packagebinaireroue ou source
compiler不要Nécessaire
Type d'emballageD'autres langues sont également possiblespython uniquement
Gestion de l'environnement virtuel, gestion des versionsPossiblePas possible (remplace virtualenv, venv)
Contrôle de dépendanceあ りaucun
Source de téléchargement du packageréférentiel anaconda, nuage anacondaPyPl

・ Conda prend en charge des langages autres que python

Anaconda / Miniconda est une plateforme multiplateforme qui vous permet d'installer plusieurs langages de programmation tels que Python, R, Ruby, Java, JavaScript, C / C ++, FORTRAN et leurs packages.

conda peut installer des progiciels écrits en plusieurs langues sur sa multiplateforme.

pip ne peut être installé que sur des packages Python.

-Si une compilation est requise

Plus de 1000 packages pouvant être installés avec la commande conda sont stockés dans un référentiel dédié appelé Anaconda cloud.

Étant donné que ces packages sont des fichiers binaires compilés, ils peuvent être téléchargés et installés sans avoir besoin d'un compilateur.

Les fichiers que vous installez avec pip contiennent les fichiers source, que vous devrez compiler côté client.

Cela peut poser des problèmes en fonction de l'environnement, et cela semble être l'une des causes qui trébuche souvent lors de la construction d'un environnement.peut être.Cela peut nécessiter des dépendances externes.

・ Qu'il y ait ou non un contrôle de dépendance

Il semble que pip ne garantit pas que toutes les dépendances sont satisfaites en même temps à chaque fois qu'un package est installé.Dans ce cas, des conflits se produiront si les packages installés ont des versions différentes des packages dont ils dépendent.

conda prend en charge cela en fournissant un solveur SAT qui collecte les métadonnées de tous les packages afin de comprendre les dépendances.Lors de l'installation, comprenez rapidement les dépendances complexes entre les packages et effectuez les mises à jour et les installations appropriées.

・ Différence de vitesse d'exécution

Il y avait également des informations selon lesquelles les opérations matricielles avec numpy installé avec conda sont plus rapides.Cela dépend du type de calcul, mais il semble que la différence soit plus du double.

Il existe différentes méthodes d'implémentation pour BLAS (Basic Linear Algebra Subprograms) qui gèrent en fait les opérations matricielles appelées par NumPy, et l'une d'entre elles est Intel MKL (Math Kernel Library) développée par Intel.).En fait, BLAS appelé depuis NumPy installé par Anaconda est MKL, mais lorsque NumPy est installé avec pip, BLAS appelé OpenBLAS est généralement utilisé, il est donc possible qu'il y ait une différence de performances ici.

Différence de vitesse NumPy entre NumPy d'Anaconda et pip-Orizuru

BLAS est une bibliothèque qui effectue des calculs matriciels et vectoriels de base. Il y a plus de fourmis vivantes dans la bibliothèque numpy et je ne suis pas sûr ...

"Dans quelle mesure la vitesse de traitement des calculs change réellement en fonction de la différence de BLAS" et "Comment savoir quel BLAS est utilisé dans votre environnement" sont résumés en détail dans les pages suivantes.Veuillez vous référer si vous le souhaitez.

Il semble que la vitesse de calcul change en fonction du BLAS utilisé pour Numpy [Python]

C'est la différence entre conda et pip.

参照


Comprendre Conda et Pip
https://conda.io/en/latest/
Comparez les vitesses de NumPy d'Anaconda et de NumPy de PyPI
Arrêtez d'installer Tensorflow en utilisant pip pour des raisons de performances!