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:
- Si uso Conda, ¿reemplazará la necesidad de virtualenv? Si no, ¿cómo uso los dos juntos? ¿Instalo virtualenv en Conda o Conda en virtualenv?
- ¿Todavía necesito usar pip? Si es así, ¿podré seguir instalando paquetes con pip en un entorno aislado?
-
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
. -
Todavía puedes usar
pip
. De hecho,conda
instalapip
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.
La respuesta corta es, solo necesitas conda.
-
Conda combina efectivamente la funcionalidad de pip y virtualenv en un solo paquete, por lo que no necesita virtualenv si está utilizando conda.
-
Te sorprendería cuántos paquetes admite conda. Si no es suficiente, puede usar pip debajo de conda.
Aquí hay un enlace a la página conda que compara conda, pip y virtualenv:
https://docs.conda.io/projects/conda/en/latest/commands.html#conda-vs-pip-vs-virtualenv-commands .
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.