La diferencia entre conda install y pip install.Comparación de funciones, etc. [Python]

2019/5/26

Hasta ahora, la instalación de pip solo se reconocía como un sustituto cuando la instalación de conda no estaba disponible.Si el paquete que quería no estaba en el repositorio de Anaconda, lo instalé con pip y, en un momento, el entorno se corrompió debido a estos conflictos.

El entorno de Anaconda se corrompió cuando pensé que el Jupyter Notebook no se iniciaría

Como era una gran oportunidad, investigué la diferencia entre pip y conda, por lo que lo dejaré como memorando a continuación.

Diferencia entre conda y pip

Que es Conda

En pocas palabras, es un administrador de paquetes que viene de serie con Anaconda / Miniconda y es un sistema de gestión ambiental.

Anaconda es una plataforma que proporciona paquetes para ciencia de datos (si vienes a descubrir la diferencia entre conda y pip, ya lo sabes). Puede instalar lenguajes de programación para ciencia de datos como Python y R, y los paquetes necesarios para el análisis estadístico y el aprendizaje automático, todo a la vez, y puede crear de inmediato un entorno que use Python.
También hay una Miniconda que tiene la configuración mínima.

conda solo funciona cuando lo instala el instalador de Anaconda o el instalador de miniconda. Incluso si instala conda en el entorno de python + pip, no puede usarlo como en la distribución de Anaconda.

Que es pip

Un instalador estándar de paquetes de Python y un sistema de administración de paquetes que viene con la instalación de Python puro.

Descarga e instala paquetes desde Python Package Index (PyPI), un repositorio para lenguajes de programación Python.

Diferencias en cada función

Los roles de conda y pip se resumen en una tabla simple.

CaracteristicasCondapepita
Instalación y administración de paquetesPuedePuede
Cambiar la versión de PythonPuedeNo es posible (sustituir con pipenv, pyenv)
Gestión del entorno virtualPuedeNo es posible (sustituir con pipenv, virtualenv, venv)

Dado que conda también es un sistema de gestión de entornos, puede crear un entorno virtual, cambiar la versión de Python a 3.7 o cambiar a 2.7.

Con pip, instalará y utilizará paquetes como pyenv (control de versiones) y venv (gestión del entorno virtual).

Recientemente, ha salido pipenv, y parece que tiene una función que casi puede reemplazar a conda.

conda install y pip install

Los comandos para instalar conda y pip install son similares, pero el mecanismo para instalar paquetes parece ser bastante diferente. Hay una tabla de comparación fácil de entender en el sitio anaconda.com, así que la citaré (en japonés y modificada para que sea más fácil de entender).

instalación de condainstalación de pip
Formato de paqueteバ イ ナ リrueda o fuente
コ ン パ イ ル不要必要
Tipo de paqueteTambién son posibles otros idiomasPython solamente
Gestión de entornos virtuales, gestión de versiones可能No es posible (sustituto de virtualenv, venv)
Verificación de dependenciaあ りninguno
Fuente de descarga del paqueterepositorio anaconda, nube anacondaPyPl

・ Conda admite otros idiomas además de Python

Anaconda / Miniconda es una plataforma multiplataforma que le permite instalar múltiples lenguajes de programación como Python, R, Ruby, Java, JavaScript, C / C ++, FORTRAN y sus paquetes.

conda puede instalar paquetes de software escritos en varios idiomas en su multiplataforma.

pip solo se puede instalar en paquetes de Python.

-Si se requiere compilación

Más de 1000 paquetes que se pueden instalar con el comando conda se almacenan en un repositorio dedicado llamado Anaconda Cloud.

Dado que estos paquetes son archivos binarios compilados, se pueden descargar e instalar sin necesidad de un compilador.

Los archivos que instala con pip contienen los archivos fuente, que deberá compilar en el lado del cliente.

Esto puede causar problemas dependiendo del entorno, y parece ser una de las causas que a menudo tropieza al construir un entorno.quizás.Puede requerir dependencias externas.

・ Si hay o no una verificación de dependencia

Parece que pip no garantiza que se satisfagan todas las dependencias al mismo tiempo cada vez que se instala un paquete.En este caso, se producirán conflictos si los paquetes instalados tienen diferentes versiones de los paquetes de los que dependen.

conda admite esto al proporcionar un solucionador SAT que recopila metadatos para todos los paquetes para comprender las dependencias.Al realizar la instalación, comprenda rápidamente las complejas dependencias entre los paquetes y realice las actualizaciones e instalaciones adecuadas.

・ Diferencia en la velocidad de ejecución

También hubo información de que las operaciones matriciales con numpy instalado con conda son más rápidas.Depende del tipo de cálculo, pero parece que la diferencia es más del doble.

Hay varios métodos de implementación para BLAS (subprogramas de álgebra lineal básica) que realmente manejan las operaciones matriciales llamadas por NumPy, y uno de ellos es Intel MKL (Math Kernel Library) desarrollado por Intel.).En realidad, BLAS llamado desde NumPy instalado por Anaconda es MKL, pero cuando NumPy se instala con pip, generalmente se usa BLAS llamado OpenBLAS, por lo que existe la posibilidad de que haya una diferencia en el rendimiento aquí.

Diferencia en la velocidad de NumPy entre NumPy de Anaconda y pip-Orizuru

BLAS es una biblioteca que realiza cálculos básicos de matrices y vectores. Hay más hormigas vivas en la biblioteca numpy y no estoy seguro ...

"Cuánto cambia realmente la velocidad de procesamiento del cálculo en función de la diferencia en BLAS" y "Cómo averiguar qué BLAS se utiliza en su entorno" se resumen en detalle en las páginas siguientes.Consulte si lo desea.

Parece que la velocidad de cálculo cambia según el BLAS utilizado para Numpy [Python]

Esa es la diferencia entre conda y pip.

Referencia


Entendiendo a Conda y Pip
https://conda.io/en/latest/
Compare las velocidades de NumPy de Anaconda y NumPy de PyPI
¡Deje de instalar Tensorflow usando pip por el rendimiento!