create activate python pip ipython package-managers conda

python - activate - conda install matplotlib



¿Cuál es la diferencia entre pip y conda? (9)

Sé que pip es un gestor de paquetes para paquetes python. Sin embargo, vi que la instalación en el sitio web de IPython usaba conda para instalar IPython.

¿Puedo usar pip para instalar IPython? ¿Por qué debería usar conda como otro gestor de paquetes de Python cuando ya tengo pip ?

¿Cuál es la diferencia entre pip y conda ?


¿Puedo usar pip para instalar iPython?

Claro, ambos (primer acercamiento en la página)

pip install ipython

y (tercer enfoque, segundo es conda )

Puedes descargar manualmente IPython desde GitHub o PyPI. Para instalar una de estas versiones, descomprímala y ejecute lo siguiente desde el directorio de origen de nivel superior usando la Terminal:

pip install .

Se recomiendan oficialmente las formas de instalación .

¿Por qué debería usar conda como otro gestor de paquetes de Python cuando ya tengo pip?

Como se dice here :

Si necesita un paquete específico, tal vez solo para un proyecto, o si necesita compartir el proyecto con otra persona, conda parece más apropiado.

Conda supera pip en ( YMMV )

  • Proyectos que usan herramientas que no son de Python.
  • compartiendo con colegas
  • cambiando entre versiones
  • Cambio entre proyectos con diferentes versiones de biblioteca.

¿Cuál es la diferencia entre pip y conda?

Eso es ampliamente respondido por todos los demás.


Aquí hay un breve resumen:

pipa

  • Paquetes de Python solamente.
  • Recopila todo desde la fuente. EDITAR: pip ahora instala ruedas binarias, si están disponibles.
  • Bendecido por la comunidad central de Python (es decir, Python 3.4+ incluye código que aumenta automáticamente el pip).

conda

  • Python agnóstico. El foco principal de los paquetes existentes es para Python, y de hecho, conda en sí está escrito en Python, pero también puede tener paquetes conda para bibliotecas de C, o paquetes de R, o realmente cualquier cosa.
  • Instala binarios. Existe una herramienta llamada conda build que construye paquetes desde la fuente, pero conda install sí misma instala cosas de paquetes conda ya construidos.
  • Externo. Conda es el administrador de paquetes de Anaconda, la distribución de Python proporcionada por Continuum Analytics, pero también puede usarse fuera de Anaconda. Puede usarlo con una instalación existente de Python si lo instala (aunque esto no se recomienda a menos que tenga una buena razón para usar una instalación existente).

En ambos casos:

  • Escrito en Python
  • Código abierto (conda es BSD y pip es MIT)

Las primeras dos viñetas de Conda son realmente lo que lo hace ventajoso sobre PIP para muchos paquetes. Dado que pip se instala desde el origen, puede ser difícil instalar cosas con él si no puede compilar el código fuente (esto es especialmente cierto en Windows, pero incluso puede ser cierto en Linux si los paquetes tienen alguna biblioteca C o FORTRAN difícil). dependencias). Conda se instala desde binario, lo que significa que alguien (por ejemplo, Continuum) ya ha hecho el trabajo duro de compilar el paquete, por lo que la instalación es fácil.

También hay algunas diferencias si está interesado en crear sus propios paquetes. Por ejemplo, pip está construido sobre setuptools, mientras que conda usa su propio formato, que tiene algunas ventajas (como ser estático y, nuevamente, agnóstico de Python).


Cita del artículo de Conda for Data Science en el sitio web de continuo:

Conda vs pip

Los programadores de Python probablemente estén familiarizados con pip para descargar paquetes de PyPI y administrar sus requisitos. Si bien, conda y pip son gestores de paquetes, son muy diferentes:

  • Pip es específico para paquetes de Python y conda es independiente del lenguaje, lo que significa que podemos usar conda para administrar paquetes desde cualquier idioma. Pip compila desde la fuente y conda instala archivos binarios, eliminando la carga de la compilación
  • Conda crea entornos de lenguaje independiente de forma nativa, mientras que pip se basa en virtualenv para administrar solo entornos de Python. Aunque se recomienda usar siempre los paquetes de Conda, Conda también incluye pip, por lo que no tiene que elegir entre los dos. Por ejemplo, para instalar un paquete python que no tiene un paquete conda, pero está disponible a través de pip, simplemente ejecute, por ejemplo:

conda install pip pip install gensim


Citando a Conda: Mitos y conceptos erróneos (una descripción completa):

...

Mito # 3: Conda y pip son competidores directos

Realidad: Conda y pip tienen diferentes propósitos, y solo compiten directamente en un pequeño subconjunto de tareas: a saber, la instalación de paquetes de Python en entornos aislados.

Pip, que significa P ip I nstalls P ackages, es el gestor de paquetes autorizado por Python, y se utiliza más comúnmente para instalar paquetes publicados en el Índice de Paquetes de Python (PyPI). Tanto pip como PyPI están gobernados y son compatibles con Python Packaging Authority (PyPA).

En resumen, pip es un administrador de propósito general para paquetes de Python; Conda es un gestor de entornos multiplataforma independiente del lenguaje. Para el usuario, la distinción más importante es probablemente esta: pip instala paquetes de python en cualquier entorno; Conda instala cualquier paquete dentro de los entornos de Conda. Si todo lo que está haciendo es instalar paquetes de Python en un entorno aislado, conda y pip + virtualenv son en su mayoría intercambiables, módulo de alguna diferencia en el manejo de dependencias y la disponibilidad de paquetes. Por entorno aislado me refiero a conda-env o virtualenv, en el que puede instalar paquetes sin modificar la instalación de Python en su sistema.

Incluso dejando de lado el Mito # 2, si nos enfocamos solo en la instalación de paquetes de Python, conda y pip sirven a diferentes audiencias y diferentes propósitos. Si quiere, digamos, administrar los paquetes de Python dentro de una instalación de Python de un sistema existente, conda no puede ayudarlo: por diseño, solo puede instalar paquetes dentro de los entornos de conda. Si quiere, digamos, trabajar con los muchos paquetes de Python que dependen de dependencias externas (NumPy, SciPy y Matplotlib son ejemplos comunes), mientras realiza un seguimiento significativo de esas dependencias, pip no puede ayudarlo: por diseño, administra paquetes de Python y solo paquetes de Python.

Conda y pip no son competidores, sino herramientas enfocadas en diferentes grupos de usuarios y patrones de uso.


Citando desde el blog de Conda :

Habiendo estado involucrados en el mundo de Python durante tanto tiempo, todos somos conscientes de pip, easy_install y virtualenv, pero estas herramientas no cumplían con todos nuestros requisitos específicos. El problema principal es que están enfocados en Python, descuidando las dependencias de las bibliotecas que no son de Python, como HDF5, MKL, LLVM, etc., que no tienen un archivo setup.py en su código fuente y tampoco instalan archivos en el sitio de Python Directorio de paquetes.

Entonces, Conda es una herramienta de empaque e instalador que apunta a hacer más de lo que hace pip ; maneja las dependencias de la biblioteca fuera de los paquetes de Python, así como los paquetes de Python. Conda también crea un entorno virtual, como lo hace virtualenv .

Como tal, Conda debería compararse con Buildout , otra herramienta que le permite manejar las tareas de instalación de Python y las que no lo son.

Debido a que Conda introduce un nuevo formato de empaquetado, no puede usar pip y Conda de manera intercambiable; pip no puede instalar el formato del paquete Conda. Puede usar las dos herramientas una al lado de la otra (instalando pip con conda install pip ), pero tampoco interoperan.


Las otras respuestas dan una descripción justa de los detalles, pero quiero resaltar algunos puntos de alto nivel.

pip es un administrador de paquetes que facilita la instalación, actualización y desinstalación de paquetes python . También funciona con entornos virtuales de python .

Conda es un administrador de paquetes para cualquier software (instalación, actualización y desinstalación). También funciona con entornos de sistemas virtuales.

Uno de los objetivos con el diseño de conda es facilitar la administración de paquetes para todo el paquete de software requerido por los usuarios, de los cuales una o más versiones de python pueden ser solo una pequeña parte. Esto incluye bibliotecas de bajo nivel, como álgebra lineal, compiladores, como mingw en Windows, editores, herramientas de control de versiones como Hg y Git, o cualquier otra cosa que requiera distribución y administración .

Para la administración de versiones, pip le permite alternar y administrar múltiples entornos de Python .

Conda le permite alternar y administrar múltiples entornos de propósito general a través de los cuales muchas otras cosas pueden variar en el número de versión, como bibliotecas C, compiladores, suites de prueba, motores de bases de datos, etc.

Conda no se centra en Windows, pero en Windows es, con mucho, la solución superior actualmente disponible cuando se requieren instalar y administrar complejos paquetes científicos que requieren compilación.

Quiero llorar cuando pienso en cuánto tiempo he perdido al intentar compilar muchos de estos paquetes a través de pip en Windows, o depurar pip install sesiones de pip install fallidas cuando se requería la compilación.

Como punto final, Continuum Analytics también aloja (gratis) binstar.org (ahora llamado repo.continuum.io ) para permitir que los desarrolladores de paquetes regulares creen sus propias pilas de software personalizadas (¡construidas!) Que sus usuarios de paquetes podrán conda install desde.


No para confundirlo aún más, pero también puede usar pip dentro de su entorno conda, que valida los comentarios generales de los gerentes específicos de python anteriores.

conda install -n testenv pip source activate testenv pip <pip command>

También puede agregar pip a los paquetes predeterminados de cualquier entorno para que esté presente cada vez, por lo que no tiene que seguir el fragmento de código anterior.


pip es solo para Python

conda es solo para Anaconda + otros paquetes científicos como las dependencias R, etc. NO todos necesitan Anaconda que ya viene con Python. Anaconda es principalmente para aquellos que hacen Aprendizaje automático / Aprendizaje profundo, etc. El desarrollador casual de Python no ejecuta Anaconda en su computadora portátil.


Para usuarios de WINDOWS

La situación de las herramientas de empaquetado "estándar" está mejorando recientemente:

  • en pypi en sí, ahora hay un 48% de paquetes de ruedas a partir de septiembre. 11th 2015 (frente al 38% en mayo de 2015, 24% en septiembre de 2014),

  • el formato de rueda ahora se admite de forma inmediata según la última versión de Python 2.7.9,

La situación de las herramientas de empaquetado "estándar" + "ajustes" también está mejorando:

  • Puede encontrar casi todos los paquetes científicos en formato de rueda en http://www.lfd.uci.edu/~gohlke/pythonlibs ,

  • El proyecto mingwpy puede traer un día un paquete de ''compilación'' a los usuarios de Windows, permitiendo instalar todo desde la fuente cuando sea necesario.

El empaque "Conda" sigue siendo mejor para el mercado al que sirve, y destaca las áreas donde el "estándar" debería mejorar.

(Además, la especificación de dependencia de esfuerzo múltiple, en el sistema de ruedas estándar y en el sistema conda, o buildout, no es muy pitónica, sería bueno si todas estas técnicas de ''núcleo'' de empaquetado pudieran converger, a través de una especie de PEP)