sklearn instalar python scipy virtualenv anaconda conda

instalar - numpy python linux



¿Conda reemplaza la necesidad de virtualenv? (6)

Recientemente descubrí a Conda después de tener problemas para instalar SciPy, específicamente en una aplicación Heroku que estoy desarrollando.

Con Conda creas entornos, muy similares a lo que hace virtualenv . Mis preguntas son:

  1. Si uso Conda, ¿reemplazará la necesidad de virtualenv? Si no, ¿cómo uso los dos juntos? ¿Instalo virtualenv en Conda o Conda en virtualenv?
  2. ¿Todavía necesito usar pip? Si es así, ¿podré seguir instalando paquetes con pip en un entorno aislado?

  1. Conda reemplaza virtualenv. En mi opinión es mejor. No se limita a Python, sino que también se puede usar para otros idiomas. En mi experiencia, proporciona una experiencia mucho más fluida, especialmente para paquetes científicos. La primera vez que instalé MayaVi correctamente en Mac fue con conda .

  2. Todavía puedes usar pip . De hecho, conda instala pip en cada nuevo entorno. Conoce los paquetes instalados por pip.

Por ejemplo:

conda list

enumera todos los paquetes instalados en su entorno actual. Los paquetes instalados por Conda se muestran así:

sphinx_rtd_theme 0.1.7 py35_0 defaults

y los instalados a través de pip como este:

wxpython-common 3.0.0.0 <pip>


La instalación de Conda le permitirá crear y eliminar entornos de Python como desee, por lo tanto, le proporcionará la misma funcionalidad que virtualenv .

En el caso de ambas distribuciones, podría crear un árbol de sistema de archivos aislado, donde puede instalar y eliminar paquetes de Python (probablemente, con pip) como lo desee. Lo que puede ser útil si desea tener diferentes versiones de la misma biblioteca para diferentes casos de uso o simplemente desea probar alguna distribución y eliminarla luego para conservar su espacio en disco.

Diferencias:

Acuerdo de licencia. Si bien virtualenv se encuentra bajo la licencia MIT más liberal, Conda usa una licencia BSD de 3 cláusulas.

Conda le proporciona su propio sistema de control de paquetes. Este sistema de control de paquetes a menudo proporciona versiones precompiladas (para la mayoría de los sistemas populares) de software popular que no es Python, que puede facilitar el funcionamiento de algunos paquetes de aprendizaje automático. Es decir, no tiene que compilar código C / C ++ optimizado para su sistema. Si bien es un gran alivio para la mayoría de nosotros, podría afectar el rendimiento de dichas bibliotecas.

A diferencia de virtualenv, Conda duplica algunas bibliotecas del sistema al menos en el sistema Linux. Estas bibliotecas pueden desincronizarse y provocar un comportamiento inconsistente de sus programas.

Veredicto:

Conda es excelente y debería ser tu opción predeterminada al comenzar tu camino con el aprendizaje automático. Le ahorrará algo de tiempo jugando con gcc y numerosos paquetes. Sin embargo, Conda no reemplaza virtualenv. Introduce cierta complejidad adicional que no siempre es deseable. Viene bajo licencia diferente. Es posible que desee evitar el uso de conda en entornos distribuidos o en hardware HPC.



Otra nueva opción y mi método preferido actual para poner en marcha un entorno es Pipenv

Actualmente es la herramienta de empaquetado Python recomendada oficialmente de Python.org


Sí, conda es mucho más fácil de instalar que virtualenv , y prácticamente reemplaza a este último.


Entornos virtuales y pip

Agregaré que creating y removing entornos de conda es simple con Anaconda.

> conda create --name <envname> python=<version> <optional dependencies> > conda remove --name <envname> --all

En un entorno activado , instale paquetes a través de conda o pip :

(envname)> conda install <package> (envname)> pip install <package>

Estos entornos están fuertemente vinculados a la gestión de paquetes tipo pip de conda , por lo que es simple crear entornos e instalar paquetes Python y no Python.

Jupyter

Además, la instalación de ipykernel en un entorno agrega una nueva lista en el menú desplegable Kernels de las notebooks Jupyter, extendiendo los entornos reproducibles a las notebooks. A partir de Anaconda 4.1, se agregaron nbextensions , agregando extensiones a las notebooks más fácilmente.

Confiabilidad

En mi experiencia, conda es más rápido y más confiable al instalar bibliotecas grandes como numpy y pandas . Además, si desea transferir el estado preservado de un entorno, puede hacerlo sharing o cloning un entorno.